Utwórz zapytanie Boolean w Javie: Opanuj wyszukiwania Boolean z GroupDocs.Search dla Javy
Wyszukiwanie ogromnych zbiorów dokumentów może przypominać szukanie igły w stogu siana. Create Boolean Query Java pozwala precyzyjnie określić, czego potrzebujesz — dokumentów zawierających obie terminy, dowolny z nich lub wykluczających niechciane słowa. W tym przewodniku przeprowadzimy Cię przez konfigurację GroupDocs.Search for Java, dodawanie dokumentów do indeksu oraz tworzenie potężnych zapytań Boolean, które usprawnią Twoje procesy document retrieval java. Po zakończeniu będziesz w stanie napisać czysty, łatwy w utrzymaniu kod, który tworzy zapytania Boolean w Javie w kilku linijkach.
Szybkie odpowiedzi
- Czym jest zapytanie boolean AND? Zwraca tylko dokumenty, które zawierają wszystkie określone terminy.
- Jak różni się OR od AND? OR dopasowuje dokumenty zawierające dowolny z terminów, rozszerzając zestaw wyników.
- Kiedy używać NOT? Użyj NOT, aby odfiltrować dokumenty zawierające niechciane słowa.
- Czy potrzebna jest licencja? Darmowa wersja próbna wystarcza do testów; licencja komercyjna jest wymagana w produkcji.
- Jaka wersja Javy jest wymagana? Obsługiwana jest Java 8+; zalecany jest JDK 11+.
Co to jest create boolean query java?
create boolean query java odnosi się do konstruowania zapytania wyszukiwania w Javie, które łączy operatory logiczne takie jak AND, OR i NOT przy użyciu API GroupDocs.Search. Poprzez składanie tych operatorów możesz precyzyjnie kontrolować, które dokumenty pasują, umożliwiając zaawansowane filtrowanie, dostrajanie trafności oraz złożone scenariusze wyszukiwania.
Dlaczego warto używać GroupDocs.Search dla Javy?
- Wysoka wydajność przy dużych zestawach dokumentów – potrafi indeksować i przeszukiwać 500 GB tekstu w mniej niż minutę na standardowym serwerze.
- Bogate API, które obsługuje zarówno zapytania oparte na tekście, jak i oparte na obiektach, pozwalając wybrać styl pasujący do Twojej architektury.
- Wbudowane wsparcie językowe dla stemmingu, słów stop i dopasowań przybliżonych w ponad 30 językach.
- Łatwa integracja z Mavenem lub bezpośrednim pobraniem JAR, wymagająca tylko kilku linii kodu, aby rozpocząć.
Wymagania wstępne
Zanim zanurzysz się w temat, upewnij się, że masz:
- GroupDocs.Search for Java (v25.4 lub nowszy) – zobacz link do pobrania poniżej.
- Zainstalowany JDK 8+ i skonfigurowany w IDE (IntelliJ IDEA, Eclipse itp.).
- Podstawową znajomość Javy oraz Maven do zarządzania zależnościami.
Konfiguracja GroupDocs.Search dla Javy
Konfiguracja Maven
Dodaj repozytorium i zależność do swojego pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
Bezpośrednie pobranie
Alternatywnie, pobierz najnowszy JAR z oficjalnej strony: GroupDocs.Search for Java releases.
Uzyskanie licencji
Rozpocznij od darmowej licencji próbnej, aby wypróbować wszystkie funkcje. W środowisku produkcyjnym zakup licencję komercyjną, aby odblokować pełną funkcjonalność.
Podstawowa inicjalizacja i konfiguracja
Utwórz folder indeksu i zainicjalizuj obiekt Index:
import com.groupdocs.search.Index;
public class GroupDocsSetup {
public static void main(String[] args) {
String indexFolder = "path/to/index/directory";
Index index = new Index(indexFolder);
}
}
Jak utworzyć zapytanie boolean w Javie?
Index reprezentuje kolekcję dokumentów przechowywaną na dysku, którą można przeszukiwać. BooleanQuery łączy wiele podzapytń przy użyciu operatorów logicznych. createAndQuery, createOrQuery i createNotQuery tworzą odpowiednio podzapytania AND, OR i NOT. Załaduj lub utwórz instancję Index, dodaj dokumenty, a następnie zbuduj obiekt BooleanQuery używając createAndQuery, createOrQuery lub createNotQuery. Wywołaj index.search(query), aby uzyskać pasujące dokumenty. Ten wzorzec działa zarówno w prostych, jak i złożonych scenariuszach i wymaga tylko trzech logicznych kroków: inicjalizacji indeksu, dodania dokumentów i wykonania zapytania.
Wyszukiwanie Boolean AND
Przegląd
Zapytanie AND zawęża wyniki, zwiększając trafność, gdy potrzebujesz dokumentów spełniających wiele kryteriów.
Kroki implementacji
Inicjalizacja indeksu – to także demonstruje dodawanie dokumentów do indeksu w scenariuszu AND.
String indexFolder = "YOUR_OUTPUT_DIRECTORY/BooleanSearch/OperatorAnd"; Index index = new Index(indexFolder);Indeksowanie dokumentów
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; index.add(documentsFolder);Wykonaj wyszukiwanie zapytaniem tekstowym – używając składni zwykłego ciągu znaków.
String query1 = "comfort AND promotion"; SearchResult result1 = index.search(query1);Wykonaj wyszukiwanie zapytaniem obiektowym – przydatne przy programowym budowaniu zapytań (search with and java).
import com.groupdocs.search.query.*; SearchQuery wordQuery1 = SearchQuery.createWordQuery("comfort"); SearchQuery wordQuery2 = SearchQuery.createWordQuery("promotion"); SearchQuery andQuery = SearchQuery.createAndQuery(wordQuery1, wordQuery2); SearchResult result2 = index.search(andQuery);
Wyszukiwanie Boolean OR
Przegląd
Zapytanie OR jest idealne dla poszukiwań eksploracyjnych, gdy chcesz uchwycić dokumenty zawierające przynajmniej jedno z kilku słów kluczowych (search with or java).
Kroki implementacji
Inicjalizacja indeksu
String indexFolder = "YOUR_OUTPUT_DIRECTORY/BooleanSearch/OperatorOr"; Index index = new Index(indexFolder);Indeksowanie dokumentów
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; index.add(documentsFolder);Wykonaj wyszukiwanie zapytaniem tekstowym
String query1 = "comfort OR neque"; SearchResult result1 = index.search(query1);Wykonaj wyszukiwanie zapytaniem obiektowym
SearchQuery wordQuery1 = SearchQuery.createWordQuery("comfort"); SearchQuery wordQuery2 = SearchQuery.createWordQuery("neque"); SearchQuery orQuery = SearchQuery.createOrQuery(wordQuery1, wordQuery2); SearchResult result2 = index.search(orQuery);
Wyszukiwanie Boolean NOT
Przegląd
Zapytanie NOT pomaga wyeliminować nieistotne dokumenty, np. odfiltrować nazwę marki konkurenta (boolean search examples java).
Kroki implementacji
Inicjalizacja indeksu
String indexFolder = "YOUR_OUTPUT_DIRECTORY/BooleanSearch/OperatorNot"; Index index = new Index(indexFolder);Indeksowanie dokumentów
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; index.add(documentsFolder);Wykonaj wyszukiwanie zapytaniem tekstowym
String query1 = "sportsman AND NOT Kynynmound"; SearchResult result1 = index.search(query1);Wykonaj wyszukiwanie zapytaniem obiektowym
SearchQuery wordQuery1 = SearchQuery.createWordQuery("sportsman"); SearchQuery wordQuery2 = SearchQuery.createWordQuery("Kynynmound"); SearchQuery notQuery = SearchQuery.createNotQuery(wordQuery2); SearchQuery andQuery = SearchQuery.createAndQuery(wordQuery1, notQuery); SearchResult result2 = index.search(andQuery);
Złożone zapytania Boolean
Przegląd
Złożone zapytania pozwalają modelować rzeczywiste scenariusze wyszukiwania, takie jak „znajdź artykuły sportowe, które są pozytywne, ale wyklucz wszelkie wzmianki o konkretnych sportowcach”.
Kroki implementacji
Inicjalizacja indeksu
String indexFolder = "YOUR_OUTPUT_DIRECTORY/BooleanSearch/ComplexQueries"; Index index = new Index(indexFolder);Indeksowanie dokumentów
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; index.add(documentsFolder);Wykonaj wyszukiwanie zapytaniem tekstowym
String query1 = "(sportsman AND favourable) AND NOT (Kynynmound OR Murray)"; SearchResult result1 = index.search(query1);Wykonaj wyszukiwanie zapytaniem obiektowym
SearchQuery word1Query = SearchQuery.createWordQuery("sportsman"); SearchQuery word2Query = SearchQuery.createWordQuery("favourable"); SearchQuery andQuery = SearchQuery.createAndQuery(word1Query, word2Query); SearchQuery word3Query = SearchQuery.createWordQuery("Kynynmound"); SearchQuery word4Query = SearchQuery.createWordQuery("Murray"); SearchQuery orQuery = SearchQuery.createOrQuery(word3Query, word4Query); SearchQuery notQuery = SearchQuery.createNotQuery(orQuery); SearchQuery rootQuery = SearchQuery.createAndQuery(andQuery, notQuery); SearchResult result2 = index.search(rootQuery);
Praktyczne zastosowania zapytań java boolean and or
- Systemy zarządzania dokumentami – znajdź umowy zawierające zarówno „confidential” AND „renewal”.
- Badania prawne – filtruj orzecznictwo przy użyciu AND/OR, jednocześnie wykluczając przestarzałe ustawy za pomocą NOT.
- Wsparcie klienta – pobierz zgłoszenia, które wspominają „login” AND „error”, ale nie „resolved”.
- Kuratela treści – zbierz wpisy na blogu o „cloud” OR „serverless” do newslettera.
Częste pułapki i rozwiązywanie problemów
- Brak odświeżenia indeksu – po dodaniu nowych dokumentów wywołaj
index.update(), aby zapewnić ich możliwość przeszukiwania. - Nieprawidłowe odstępy operatorów – GroupDocs.Search oczekuje spacji wokół operatorów (
AND,OR,NOT). - Rozróżnianie wielkości liter – zapytania są domyślnie niewrażliwe na wielkość liter, ale własne analizatory mogą to zmienić.
- Duże zestawy wyników – używaj paginacji (
search(query, 0, 100)), aby uniknąć przeciążenia pamięci.
Najczęściej zadawane pytania
Q: Czy mogę połączyć więcej niż dwa terminy w zapytaniu AND?
A: Oczywiście. Możesz łańcuchowo połączyć wiele obiektów createWordQuery przy użyciu createAndQuery, lub po prostu napisać "term1 AND term2 AND term3" w zapytaniu tekstowym.
Q: Czy GroupDocs.Search obsługuje wyszukiwania z wildcardami lub przybliżone?
A: Tak. Dodaj * jako wildcard (np. promot*) lub użyj ~ dla dopasowania przybliżonego (np. comfort~).
Q: Jak ograniczyć wyszukiwanie do określonych typów plików?FileTypeQuery ogranicza wyniki wyszukiwania do konkretnych formatów plików, takich jak PDF lub DOCX.
A: Użyj klasy FileTypeQuery, aby ograniczyć wyniki do PDF, DOCX itp., i połącz ją ze swoim zapytaniem Boolean.
Q: Jaki jest najlepszy sposób monitorowania wydajności indeksowania?
A: Włącz wbudowany logger (index.getLogger().setLevel(Level.INFO)) i przejrzyj metryki czasowe po każdej operacji add.
Q: Czy istnieje sposób na zwiększenie istotności niektórych terminów?BoostQuery podnosi wynik trafności określonych terminów w zapytaniu wyszukiwania.
A: Tak. Otocz ważne słowa klasą BoostQuery, aby zwiększyć ich wagę w algorytmie punktacji.
Ostatnia aktualizacja: 2026-07-21
Testowano z: GroupDocs.Search 25.4 (Java)
Autor: GroupDocs