Мы видели в предыдущей главе Lucene — Операция поиска , Lucene использует IndexSearcher для поиска и использует объект Query, созданный QueryParser в качестве входных данных. В этой главе мы собираемся обсудить различные типы объектов Query и различные способы их программного создания. Создание различных типов объектов Query дает контроль над типом поиска, который будет выполнен.
Рассмотрим случай расширенного поиска, предоставляемого многими приложениями, где пользователям предоставляется несколько вариантов ограничения результатов поиска. С помощью программирования запросов мы можем достичь того же самого очень легко.
Ниже приведен список типов запросов, которые мы обсудим в свое время.
Этот класс действует как основной компонент, который создает / обновляет индексы в процессе индексирования.
TermRangeQuery используется, когда нужно найти диапазон текстовых терминов.
PrefixQuery используется для сопоставления документов, индекс которых начинается с указанной строки.
BooleanQuery используется для поиска документов, которые являются результатом нескольких запросов с использованием операторов AND, OR или NOT .
Фразовый запрос используется для поиска документов, которые содержат определенную последовательность терминов.
WildcardQuery используется для поиска документов с использованием подстановочных знаков, таких как ‘*’ для любой последовательности символов? соответствие одному символу.
FuzzyQuery используется для поиска документов с использованием нечеткой реализации, которая является приблизительным поиском, основанным на алгоритме расстояния редактирования.
MatchAllDocsQuery, как следует из названия, соответствует всем документам.