Язык запросов поиска Инфо-Навигатора.
В настройках поиска Инфо-Навигатора можно включить использование языка запросов CLucene. Это дает возможность задавать сложные поисковые запросы.
Язык запросов состоит из так называемых термов и их модификаторов.
Термы
Термом может быть:
- Отдельное слово. Без модификаторов осуществляется его поиск (в зависимости от опции "Похожие слова" – только точное соответствие или с формами слова)
- Фраза – несколько слов в кавычках. Без модификаторов осуществляется поиск точной фразы. Если установлена опция "Похожие слова", ищутся также фразы, где на соответствующих местах стоят грамматические формы слов фразы запроса. Например, по запросу
"окно результат"
найдется фраза "окна результатов".
Следует заметить, что подсветка полученных результатов осуществляется по словам. В итоге, подсвечены будут не только части текста, соответствующие заданному запросу, а также все слова, в него входящие. Например, в отображаемых результатах запроса "окно результат" будут подсвечены все слова "окно" и "результат", даже не стоящие рядом (а если включена опция "Похожие слова", то также и все грамматические формы этих слов).
Модификаторы термов
Действие термов можно изменять при помощи следующих модификаторов:
- Поиск по близости. Можно искать слова в пределах определенного расстояния (в словах). Для такого поиска, добавьте символ "~" (тильда) в конце фразы в кавычках. Например,
"страница раздел"~3
найдет (при включенной опции "Похожие слова") фразы "страница этого раздела", "страница совсем другого раздела", т.к. в них расстояние между словами "страница" и "раздел" не превышает 3 слов. - Усиление терма. Позволяет усилить значение терма при сортировке результатов. Для усиления используется символ "^" (крышка). Например, если в первых результатах запроса
журнал таблица
с точки зрения пользователя, слишком много внимания уделяется таблицам и слишком мало – журналам, то можно усилить значимость слова (=терма) "журнал":журнал^5 таблица
По умолчанию коэффициент усиления равен 1. Он должен быть положительным; но он может быть меньше 1 (например, 0.2).
Логические операторы
При помощи логических операторов из отдельных термов можно создавать сложные составные запросы:
- Логический оператор "AND" (и). Ставится между двумя термами. Требует, чтобы оба терма присутствовали в документе. Например, если оба терма - простые слова, то чтобы они оба содержались в тексте. Вместо "NOT" можно использовать "&&" (два амперсанда слитно).
- Оператор "+" (плюс). Ставится перед термом, требует, чтобы он присутствовал в документе. Например, запрос
+журнал таблица
найдет документы, в которых обязательно присутствует слово "журнал" и может присутствовать слово "таблица" (может и не присутствовать, но такие документы будут ниже в результатах). - Логический оператор "NOT" (не). Ставится перед термом, исключает из результатов поиска документы, в которых он содержится. Вместо оператора "NOT" можно использовать символ "!" (восклицательный знак).
- Оператор "-" (минус). Ставится перед термом, исключает документы, в которые входит этот терм. Например, запрос
поиск -"поиск ключей"
найдет все документы, где есть слово "поиск", но при этом нет фразы "поиск ключей". Правда, при этом будут найдены страницы с текстом "поиск <каких-то> ключей"; для того, чтобы исключить и их, нужно использовать запроспоиск -"поиск ключей"~2
(модификатор терма - поиск по близости). - Группировка. Можно формировать сложные выражения при помощи скобок. например, запрос
(регистрация защита) AND ключ
найдет все документы, в которых есть либо слово "регистрация", либо слово "защита", и обязательно содержится слово "ключ".
При использовании языка запросов некоторые символы интерпретируются как символы языка запросов:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \Это может являться нежелательным - например, символ "-" (минус) в запросе
Инфо-Бухгалтербудет интерпретирован как оператор. В итоге запрос будет значить найти все документы, в которых есть слово "инфо", и в которых нет слова "бухгалтер", что, скорее всего, не то, что имел в виду пользователь. В этих случаях нужно отключать использование языка запросов. Также можно экранировать специальные символы символом "\" (обратная косая черта). Например, вместо