С заданием запросов на естественном языке справится любой, поэтому здесь остановимся кратко на использовании
Языковый модуль, входящий в состав программы, обеспечивает поиск всех форм заданного слова. Но если требуется найти документы, в которые входят лишь точная форма слова в запросе, перед этим словом в запросе нужно поставить восклицательный знак. Два восклицательных знака действуют иначе — ведется поиск всех производных слов от заданного.
Как и в поиске на Яндексе, здесь также поддерживается поиск синонимов, поиск слов, находящихся на определенном расстоянии друг от друга, поиск словосочетаний.
Поиск в зонах документа и их атрибутах будет полезен, на мой взгляд, в первую очередь даже не для посетителей вашего сайта. К тому же, поисковый сервер можно использовать не для внешнего сайта, а в пределах внутренней, локальной сети. И вот здесь вполне уместно формировать для индексируемых документов зоны и в дальнейшем вести по ним поиск.
В отличие от других правил формирования запросов, операторы зонноатрибутивного поиска зависят от настроек, примененных при создании индексных файлов. А именно, в них используются имена поисковых зон и атрибутов, заданные в конфигурационных файлах парсеров. Имена документных атрибутов также могут быть заданы в конфигурационном файле источника данных. В табл. 10.3 приведено краткое описание операторов запросов, связанных с поиском по зонам и атрибутам.


И последнее, что связано с языком запросов. Формирование списка результатов выполняется с учетом релевантности найденного документа поисковому запросу. Релевантность определяется по сложным формулам и зависит от множества факторов, в том числе от частотных характеристик слов в поисковом выражении, веса слова или выражения, близости слов в тексте документа. Но существуют способы, оказывающие влияние на порядок выдачи результатов. Для этого используются операторы веса и уточнения запроса.
Вес слова или выражения определяется числом. Это число ставится через двоеточие после слова (или выражения) в строке запроса. Например, если поисковый запрос выглядит так:
Аналогично, если в запрос будет добавлено уточняющее слово, то в начало списка результатов будут выведены те документы, которые содержат как основное слово или выражение, так и уточняющее.
10.1.4. Запускаем Яndex.Server
Определив, что должно присутствовать в конфигурационном файле, и настроив его, можно запускать программу. В зависимости от операционной системы команда запуска будет выглядеть различно, но мы рассматриваем вариант работы в OS Windows.
Яndex.Server в старших версиях Windows может работать в двух режимах — как сервис операционной системы и как консольное приложение. Если запустить программу с ключом — i, то программа запустится в качестве сервиса и управлять ею будет возможно через опцию Service панели управления либо с помощью команды NET. Для выгрузки сервиса нужно использовать другой ключ: — r.
Если запускать программу без ключей либо с ключом — d, программа будет запущена как консольное приложение. Остановить его можно будет со страницы администратора приложения (рис. 10.1).

Доступ к странице администратора происходит по адресу, определенному в конфигурационном файле. При этом должен быть указан порт, по которому разрешается доступ к сервису. Так, если порт доступа определен как 17000, а адрес сервиса — http://localhost/, то доступ к странице администратора будет выполняться по адресу http://localhost:17000/admin.
Теперь необходимо проверить, в каком состоянии находятся сервисы индексирования и поиска. По умолчанию после старта. Hndex.Server индексатор находится в остановленном состоянии, а поисковый сервер при наличии индексных файлов автоматически стартует. Если индексные файлы отсутствуют, то веб-сервер продолжает работать, но на поисковые запросы отвечает, что поисковый сервис остановлен. Поэтому перед первым стартом поискового сервера необходимо запустить индексатор и дождаться, пока он завершит построение индексных файлов. Откройте в браузере веб-страницу http://localhost:17000/admin и нажмите на кнопку Запустить, расположенную рядом с заголовком Индексатор: остановлен. Дождитесь окончания процесса индексирования. После окончания индексирования в подкаталоге workindex рабочего каталога должны быть созданы шесть файлов, имеющих ненулевую длину — indexcfg, indexinv, indexkey, indexdir, indexarc, indexdat.
На веб-странице http://localhost:17000/admin нажмите на кнопку Запустить, расположенную рядом с заголовком Поиск: остановлен. Теперь страница http://localhost:17000/ содержит форму для поиска.
Повторный запуск индексатора требуется для обновления индексных файлов, если коллекция документов со временем изменяется за счет добавления, изменения или удаления документов. Запуск индексатора можно выполнить со страницы администратора либо использовать запуск страницы администратора со специальными параметрами, или запуск из командной строки.
Остался последний шаг — проверить, правильно ли работает поисковый сервер. Самый простой вариант — открыть страницу по адресу http://localhost:17000/.
Яндекс-сервер ожидает поступления HTTP-запросов по указанному в конфигурации сервера порту. Он анализирует запрошенные URL и запрос (часть URL после знака вопроса, содержащую значения полей поисковой формы), выполняя перечисленные далее действия в указанном порядке.
? Во-первых, выполняется проверка, происходит ли обращение к административной части сервера или нет:
• если путь совпадает со строкой /admin, сервер выдает административную страницу;
• если путь начинается с подстроки /images/, сервер выдает статическую картинку;
• если путь начинается с подстроки /hl, сервер показывает 'подсвеченный' документ, указанный в поле запроса url, в котором выделены слова, релевантные запросу, содержащемуся в поле text.
? Во-вторых, выполняется анализ запроса на наличие в нем дополнительных параметров группирования.
? И, наконец, если запрос не отправляется на Яндекс и не является управляющим для работы сервера, он обрабатывается для передачи на выполнение сервером. Для этого вызывается функция UserRequest, которая должна сформировать текст поискового запроса на языке запросов Яндекса. Действия, выполняемые в этой функции, обычно сводятся к преобразованию значений некоторых полей поисковой формы в текст поискового запроса. Реализация функции UserRequest по умолчанию использует в качестве поискового запроса значение поля text и может быть изменена в процессе настройки сервера.
Если поисковый запрос успешно получен, выполняется собственно поиск, после чего показывается страница с результатами выполнения запроса, либо, если формат запроса не соответствует ни одному из правил, показывается страница с сообщением об ошибке.
Но поиск через специальную страницу, не связанную непосредственно с вебресурсом, удобен только для администратора в период отладки. Пользователям требуется предоставить возможность вести поиск на сайте, для чего на его страницы необходимо добавить форму поиска. Например, такую, которая приведена в