Operatory logiczne Java – Tworzenie indeksu wyszukiwania i wyszukiwanie fasetowe

Implementacja potężnego doświadczenia wyszukiwania w Javie może wydawać się przytłaczająca, szczególnie gdy musisz utworzyć indeks wyszukiwania Java, który obsługuje operatory logiczne Java dla zapytań fasetowych i złożonych. W tym samouczku przeprowadzimy Cię przez konfigurację GroupDocs.Search for Java, budowanie indeksu, dodawanie dokumentów oraz tworzenie zarówno prostych wyszukiwań fasetowych, jak i zaawansowanych zapytań wielokryterialnych wykorzystujących logikę Boolean. Na koniec zrozumiesz, jak wykorzystać content search Java, filename search Java, a nawet operacje update index java, aby utrzymać dane w aktualności.

Szybkie odpowiedzi

  • Czym jest wyszukiwanie fasetowe? Sposób filtrowania wyników według zdefiniowanych wcześniej kategorii, takich jak typ pliku czy data.
  • Jak utworzyć indeks wyszukiwania Java? Zainicjalizuj obiekt Index, wskazując folder, i dodaj dokumenty.
  • Czy mogę łączyć wiele kryteriów przy użyciu operatorów logicznych? Tak — użyj zapytań opartych na obiektach lub operatorów Boolean w zapytaniu tekstowym.
  • Czy potrzebna jest licencja? Bezpłatna wersja próbna działa w środowisku deweloperskim; licencja komercyjna usuwa ograniczenia.
  • Które IDE jest najlepsze? Dowolne IDE Java (IntelliJ IDEA, Eclipse, NetBeans) działa bez problemu.

Co oznacza „create search index java”?

Utworzenie indeksu wyszukiwania w Javie oznacza zbudowanie struktury danych umożliwiającej szybkie przeszukiwanie, która przechowuje metadane i treść dokumentów, zapewniając szybkie odnajdywanie na podstawie zapytań użytkownika. Dzięki GroupDocs.Search indeks znajduje się na dysku, może być aktualizowany przyrostowo i obsługuje zaawansowane funkcje, takie jak fasetowanie, boolean operators Java oraz złożoną logikę Boolean.

Dlaczego warto używać GroupDocs.Search do zapytań fasetowych i złożonych?

  • Fasetowanie „out‑of‑the‑box” – filtrowanie po polach takich jak nazwa pliku, rozmiar czy własne metadane.
  • Bogaty język zapytań – łączenie zapytań tekstowych, frazowych i polowych przy użyciu operatorów AND/OR/NOT (rdzeń boolean operators java).
  • Skalowalna wydajność – indeksuje miliony dokumentów przy niskiej latencji.
  • Czysta Java – brak zależności natywnych, działa na każdej platformie z JDK 8+.
  • Łatwa konserwacja indeksu – wywołaj index.update(), aby update index java po dodaniu lub usunięciu plików.

Wymagania wstępne

Zanim zaczniemy, upewnij się, że masz następujące elementy:

  • JDK 8 lub nowszy zainstalowany i skonfigurowany w IDE.
  • Maven (lub Gradle) do zarządzania zależnościami.
  • GroupDocs.Search for Java ≥ 25.4.
  • Podstawową znajomość koncepcji OOP w Javie oraz struktury projektu Maven.

Konfiguracja GroupDocs.Search for Java

Konfiguracja Maven

Dodaj repozytorium i zależność do pliku 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 plik JAR ze strony wydania:
GroupDocs.Search for Java releases

Uzyskanie licencji

Aby odblokować pełną funkcjonalność:

  1. Bezpłatna wersja próbna – idealna do rozwoju i testów.
  2. Tymczasowa licencja ewaluacyjna – wydłuża limity wersji próbnej.
  3. Licencja komercyjna – usuwa wszystkie ograniczenia w środowisku produkcyjnym.

Podstawowa inicjalizacja i konfiguracja

Poniższy fragment kodu pokazuje, jak create a search index Java poprzez utworzenie obiektu Index:

import com.groupdocs.search.Index;

public class SearchSetup {
    public static void main(String[] args) {
        String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
        
        // Create an instance of Index – this creates the on‑disk index
        Index index = new Index(indexFolder);
        
        System.out.println("GroupDocs.Search initialized successfully!");
    }
}

Po przygotowaniu indeksu możemy przejść do rzeczywistych zapytań fasetowych i złożonych.

Jak używać boolean operators java – Proste wyszukiwanie fasetowe

Wyszukiwanie fasetowe pozwala użytkownikom końcowym zawęzić wyniki, wybierając wartości z predefiniowanych kategorii (faset). Poniżej krok po kroku opisany proces.

Krok 1: Utwórz indeks

Najpierw wskaż Index na folder, w którym będą przechowywane pliki indeksu.

import com.groupdocs.search.Index;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/SimpleFacetedSearch";
Index index = new Index(indexFolder);

Krok 2: Dodaj dokumenty do indeksu

Powiedz GroupDocs.Search, gdzie znajdują się Twoje dokumenty źródłowe. Wszystkie obsługiwane typy plików (PDF, DOCX, TXT itp.) zostaną automatycznie zaindeksowane.

import com.groupdocs.search.Index;

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

// Adding documents to the index
index.add(documentsFolder);

Krok 3: Wykonaj wyszukiwanie w polu treści przy użyciu zapytania tekstowego

Proste zapytanie tekstowe filtruje po polu content. Składnia content: Pellentesque ogranicza wyniki do dokumentów zawierających słowo Pellentesque w treści.

import com.groupdocs.search.results.SearchResult;

String query1 = "content: Pellentesque";
SearchResult result1 = index.search(query1);

// Output search results
System.out.println("Documents found (query 1): " + result1.getDocumentCount());

Krok 4: Wykonaj wyszukiwanie przy użyciu zapytania obiektowego

Zapytania oparte na obiektach dają precyzyjną kontrolę. Tutaj budujemy zapytanie słowne, otaczamy je zapytaniem pola i wykonujemy je.

import com.groupdocs.search.SearchQuery;
import com.groupdocs.search.options.CommonFieldNames;

SearchQuery wordQuery = SearchQuery.createWordQuery("Pellentesque");
SearchQuery fieldQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content, wordQuery);
SearchResult result2 = index.search(fieldQuery);

// Output search results
System.out.println("Documents found (query 2): " + result2.getDocumentCount());

Jak używać boolean operators java – Złożone wyszukiwanie zapytań

Złożone zapytania łączą wiele pól, operatory Boolean oraz wyszukiwanie fraz. To idealne rozwiązanie dla filtrów e‑commerce lub badań dokumentów prawnych.

Krok 1: Utwórz indeks dla zapytań złożonych

Użyj tej samej struktury folderów; indeks może być współdzielony zarówno w scenariuszach prostych, jak i złożonych.

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/FacetedSearch/ComplexQuery";
Index index = new Index(indexFolder);
index.add(documentsFolder);

Krok 2: Wykonaj wyszukiwanie przy użyciu zapytania tekstowego

Poniższe zapytanie szuka plików o nazwie lorem i ipsum lub treści zawierającej jedną z dwóch dokładnych fraz.

import com.groupdocs.search.results.SearchResult;

String query1 = "(filename: (lorem AND ipsum)) OR (content: (\"lectus eu aliquam\" OR \"dignissim turpis\"))";
SearchResult result1 = index.search(query1);

// Output search results
class SearchResult {
    public int getDocumentCount() {
        // Implementation here
        return 0; // Placeholder
    }
}
System.out.println("Documents found (complex text query): " + result1.getDocumentCount());

Krok 3: Wykonaj wyszukiwanie przy użyciu zapytania obiektowego

Budowa zapytania opartego na obiektach odzwierciedla zapytanie tekstowe, ale zapewnia bezpieczeństwo typów i pomoc IDE.

import com.groupdocs.search.SearchQuery;

SearchQuery word6Query = SearchQuery.createWordQuery("lorem");
SearchQuery word7Query = SearchQuery.createWordQuery("ipsum");

// Constructing AND, OR queries for filename field
SearchQuery andQuery = SearchQuery.createAndQuery(word6Query, word7Query);
SearchQuery filenameQuery = SearchQuery.createFieldQuery(CommonFieldNames.FileName, andQuery);

// Content search using OR query with phrases
SearchQuery phrase1Query = SearchQuery.createPhraseSearchQuery("lectus", "eu", "aliquam");
SearchQuery phrase2Query = SearchQuery.createPhraseSearchQuery("dignissim", "turpis");

SearchQuery contentQuery = SearchQuery.createFieldQuery(CommonFieldNames.Content, 
    SearchQuery.createOrQuery(phrase1Query, phrase2Query));

// Final root query combining filename and content queries
SearchQuery rootQuery = SearchQuery.createOrQuery(filenameQuery, contentQuery);
SearchResult result2 = index.search(rootQuery);

// Output search results
System.out.println("Documents found (complex object query): " + result2.getDocumentCount());

Praktyczne zastosowania wyszukiwania fasetowego i złożonego

ScenariuszJak fasetowanie pomagaPrzykładowe zapytanie
Katalog e‑commerceFiltrowanie po kategorii, cenie, marcecategory: Electronics AND price:[100 TO 500]
Repozytorium dokumentów prawnychZawężanie po numerze sprawy, jurysdykcjicaseNumber: 2023-045 AND jurisdiction: "California"
Archiwa badawczeŁączenie autora, roku publikacji, słów kluczowych(author: "Doe") AND (year: 2022) AND (keywords: "machine learning")
Intranet przedsiębiorstwaWyszukiwanie po typie pliku i dzialefiletype: pdf AND department: HR

Te przykłady pokazują, dlaczego opanowanie technik boolean operators java oraz filename search java jest przełomowe dla każdej aplikacji intensywnie pracującej z danymi.

Częste pułapki i rozwiązywanie problemów

  • Puste wyniki – sprawdź, czy dokumenty zostały pomyślnie dodane (index.getDocumentCount() może pomóc).
  • Przestarzały indeks – po dodaniu lub usunięciu plików wywołaj index.update(), aby update index java i utrzymać indeks w synchronizacji.
  • Nieprawidłowe nazwy pól – używaj stałych CommonFieldNames (Content, FileName itp.), aby uniknąć literówek.
  • Wąskie gardła wydajności – przy bardzo dużych kolekcjach rozważ zwiększenie index.setCacheSize() lub użycie dedykowanego SSD dla folderu indeksu.
  • Brak podświetleń – aby highlight search results java, pobierz dopasowane fragmenty za pomocą SearchResult.getFragments() (nie pokazano tutaj, ale dostępne w API).

Najczęściej zadawane pytania

P: Czy mogę używać GroupDocs.Search z Spring Boot?
O: Oczywiście. Dodaj zależność Maven, skonfiguruj indeks jako bean Springa i wstrzykuj go tam, gdzie potrzebujesz funkcji wyszukiwania.

P: Czy biblioteka obsługuje własne pola metadanych?
O: Tak – możesz dodać pola definiowane przez użytkownika podczas indeksowania i następnie fasetować na nich.

P: Jak duży może być indeks?
O: Indeks jest oparty na dysku i może obsługiwać miliony dokumentów; wystarczy zapewnić odpowiednią pojemność dysku i monitorować ustawienia pamięci podręcznej.

P: Czy istnieje sposób na ranking wyników według trafności?
O: GroupDocs.Search automatycznie ocenia dopasowania; możesz pobrać wynik za pomocą SearchResult.getDocument(i).getScore().

P: Co się stanie, jeśli zindeksuję zaszyfrowane pliki PDF?
O: Podaj hasło przy dodawaniu dokumentu: index.add(filePath, password).

Podsumowanie

Do tej pory powinieneś czuć się pewnie w creating a search index Java przy użyciu GroupDocs.Search, dodawaniu dokumentów oraz tworzeniu zarówno prostych zapytań fasetowych, jak i zaawansowanych wyszukiwań Boolean przy użyciu boolean operators java. Te możliwości pozwalają dostarczyć szybkie, dokładne i przyjazne dla użytkownika doświadczenia wyszukiwania w szerokim zakresie aplikacji — od platform e‑commerce po korporacyjne bazy wiedzy.

Gotowy na kolejny krok? Poznaj zaawansowane funkcje GroupDocs.Search, takie jak highlighting, suggestions i real‑time indexing, aby jeszcze bardziej wzmocnić moc wyszukiwania w swojej aplikacji.


Ostatnia aktualizacja: 2026-02-16
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs