Яндекс для всех - Абрамзон М. Г.
Шрифт:
Интервал:
Закладка:
fa=price:40–50
fa=f:1-20;d:-30;t:40-
Все описанные здесь параметры могут быть использованы при разработке собственной страницы задания условий расширенного поиска. Но эта возможность доступна только в платной версии.
10.1.3. Язык запросов
Язык запросов, используемый в Яndex.Server, в полной мере соответствует языку запросов, с которым работает поисковая система Яндекс. Поэтому все, что можно использовать для поиска в Интернете, новостях, среди картинок, поддерживается и в версии программы, предназначенной для установки на сайте. Такой подход удобен для пользователей — если он знаком с возможностями формирования запросов на Яндексе, то без проблем сможет искать информацию и на вашем сайте.
Задавать вопросы можно и на естественном языке, и используя логические операторы (расширенные возможности Яндекса). Часть расширенных возможностей реализована в виде поисковой страницы, на которую можно перейти по ссылке Расширенный поиск.
С заданием запросов на естественном языке справится любой, поэтому здесь остановимся кратко на использовании логических операторов, позволяющих в одном запросе задать несколько условий поиска. Такой вариант удобен, когда есть возможность выделить для запроса ключевые слова, определить возможные синонимы, задать слова, которые не должны попадать в результаты.
Языковый модуль, входящий в состав программы, обеспечивает поиск всех форм заданного слова. Но если требуется найти документы, в которые входят лишь точная форма слова в запросе, перед этим словом в запросе нужно поставить восклицательный знак. Два восклицательных знака действуют иначе — ведется поиск всех производных слов от заданного.
Как и в поиске на Яндексе, здесь также поддерживается поиск синонимов, поиск слов, находящихся на определенном расстоянии друг от друга, поиск словосочетаний.
Поиск в зонах документа и их атрибутах будет полезен, на мой взгляд, в первую очередь даже не для посетителей вашего сайта. К тому же, поисковый сервер можно использовать не для внешнего сайта, а в пределах внутренней, локальной сети. И вот здесь вполне уместно формировать для индексируемых документов зоны и в дальнейшем вести по ним поиск.
В отличие от других правил формирования запросов, операторы зонноатрибутивного поиска зависят от настроек, примененных при создании индексных файлов. А именно, в них используются имена поисковых зон и атрибутов, заданные в конфигурационных файлах парсеров. Имена документных атрибутов также могут быть заданы в конфигурационном файле источника данных. В табл. 10.3 приведено краткое описание операторов запросов, связанных с поиском по зонам и атрибутам.
И последнее, что связано с языком запросов. Формирование списка результатов выполняется с учетом релевантности найденного документа поисковому запросу. Релевантность определяется по сложным формулам и зависит от множества факторов, в том числе от частотных характеристик слов в поисковом выражении, веса слова или выражения, близости слов в тексте документа. Но существуют способы, оказывающие влияние на порядок выдачи результатов. Для этого используются операторы веса и уточнения запроса.
Вес слова или выражения определяется числом. Это число ставится через двоеточие после слова (или выражения) в строке запроса. Например, если поисковый запрос выглядит так: экспериментальные:4 модели, то? хотя будут найдены те же документы, что и по запросу экспериментальные модели, но вот в начало списка будут выведены те результаты (документы), в которых слово "экспериментальные" встречается чаще.
Аналогично, если в запрос будет добавлено уточняющее слово, то в начало списка результатов будут выведены те документы, которые содержат как основное слово или выражение, так и уточняющее.
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 и может быть изменена в процессе настройки сервера.