Lucene - programowanie zapytań
Widzieliśmy w poprzednim rozdziale Lucene - Search OperationLucene używa IndexSearcher do wyszukiwania i używa obiektu Query utworzonego przez QueryParser jako dane wejściowe. W tym rozdziale omówimy różne typy obiektów Query i różne sposoby ich programowego tworzenia. Tworzenie różnych typów obiektów Query daje kontrolę nad rodzajem wyszukiwania.
Rozważmy przypadek wyszukiwania zaawansowanego, oferowanego przez wiele aplikacji, w których użytkownicy mają wiele opcji ograniczania wyników wyszukiwania. Dzięki programowaniu zapytań możemy bardzo łatwo osiągnąć to samo.
Poniżej znajduje się lista typów zapytań, które omówimy w odpowiednim czasie.
S.No. | Klasa i opis |
---|---|
1 | TermQuery Ta klasa działa jako podstawowy składnik, który tworzy / aktualizuje indeksy podczas procesu indeksowania. |
2 | TermRangeQuery TermRangeQuery jest używane, gdy ma być przeszukiwany zakres terminów tekstowych. |
3 | PrefixQuery PrefixQuery służy do dopasowywania dokumentów, których indeks zaczyna się od określonego ciągu. |
4 | BooleanQuery BooleanQuery służy do wyszukiwania dokumentów, które są wynikiem wielu zapytań przy użyciu AND, OR lub NOT operatorów. |
5 | PhraseQuery Zapytanie frazowe służy do wyszukiwania dokumentów zawierających określoną sekwencję terminów. |
6 | WildCardQuery WildcardQuery służy do wyszukiwania dokumentów przy użyciu symboli wieloznacznych, takich jak „*” dla dowolnej sekwencji znaków ,? dopasowanie pojedynczego znaku. |
7 | FuzzyQuery FuzzyQuery służy do wyszukiwania dokumentów przy użyciu implementacji rozmytej, która jest przybliżonym wyszukiwaniem w oparciu o algorytm edycji odległości. |
8 | MatchAllDocsQuery MatchAllDocsQuery, jak sugeruje nazwa, pasuje do wszystkich dokumentów. |