Недавно при развертывании SharePoint Server 2010 у клиента я столкнулся с проблемой в работе службы поиска. Хочу поделиться информацией.

Вначале, когда вся первоначальная работа была проделана, поиск работал, все индексировалось, контент находился через центр поиска. Однако в последующие дни возникли проблемы. Журнал обхода контента сообщал о длительном безрезультатном обходе, в журнале Windows было множество ошибок, топология поиска сообщала о проблемах с распространением индекса. Поиск на сайте не давал результатов.

В журнале событий Windows фигурировало следующее событие:

Query-0 Server Not Responding - Event ID 2587

Оно также сопровождалось сообщением 2158 (защита от переполнения журнала), то есть сообщений было много.

В деталях сообщения говорилось о невозможности найти сетевой адрес/путь, но не сообщалось какой именно.

Снимок экрана внизу показывает нормальную ситуацию, но в описанном случае статус компонента запроса был недоступен, а длительность обхода исчислялась часами при нулевом количестве результатов.

Надо сказать, что я наступил на «грабли» дважды. Сначала, решив не разбираться, я просто пересоздал службу поиска, поскольку еще ничего не настраивалось, и все заработало. Но на следующий день ситуация повторилась. То есть я избавился от симптома, а не от причины возникновения проблем. Тогда я решил копнуть глубже, понять причины, решить их раз и навсегда.

Стоит отметить, что в мое отсутствие на сервер устанавливались обновления, и он перезагружался.

Стоит также обратить внимание, что при создании компонента запроса и компонента обхода в топологии SharePoint, указываются папки на локальном диске, где содержится поисковый индекс. Этот индекс передается от компонента обхода в папки к компонентам запроса. При настройке службы при помощи мастера эти параметры настраиваются автоматически. Также, если Вы не имели дело со службой поиска достаточно близко и не читали документацию, Вы можете не знать, что для передачи файлов индекса используется общая сетевая папка, причем даже при наличии одного сервера. На эти папки имеют права определенные учетные записи и группы.

Я проверил наличие сетевых папок на сервере:

На экране выше все нормально, но у моего клиента нужной папки не было.

То же самое и даже больше можно сделать при помощи MMC и добавления оснастки:

Итак, после некоторых изысканий выяснилось, что SharePoint не виноват, просто после перезагрузки сервера применялись групповые политики, которые настроил клиент для удаления «несанкционированных» общих сетевых папок с серверов. После настройки необходимых параметров наша папка перестала удаляться после перезагрузки. Все заработало.

Всем успехов в поиске!