Maak zoekindex Java – Faceted & Complex Searches

Het implementeren van een krachtige search experience in Java kan overweldigend aanvoelen, vooral wanneer je create search index Java projecten moet maken die grote documentcollecties verwerken. Gelukkig biedt GroupDocs.Search for Java een rijke API waarmee je faceted en complex queries kunt bouwen met slechts een paar regels code. In deze tutorial ontdek je hoe je de bibliotheek instelt, create a search index Java, documenten toevoegt, en zowel eenvoudige faceted zoekopdrachten als geavanceerde multi‑criteria queries uitvoert.

Snelle antwoorden

  • Wat is een faceted search? Een manier om resultaten te filteren op vooraf gedefinieerde categorieën (bijv. bestandstype, datum).
  • Hoe maak ik een search index Java? Initialiseer een Index object dat naar een map wijst en voeg documenten toe.
  • Kan ik meerdere criteria combineren? Ja—gebruik object‑based queries of Boolean operators in een tekstquery.
  • Heb ik een licentie nodig? Een gratis proefversie werkt voor ontwikkeling; een commerciële licentie verwijdert de limieten.
  • Welke IDE werkt het beste? Elke Java IDE (IntelliJ IDEA, Eclipse, NetBeans) werkt prima.

Wat is “create search index java”?

Een search index maken in Java betekent het bouwen van een doorzoekbare datastructuur die documentmetadata en -inhoud opslaat, waardoor snelle opvraging op basis van gebruikersqueries mogelijk is. Met GroupDocs.Search bevindt de index zich op schijf, kan incrementeel worden bijgewerkt, en ondersteunt geavanceerde functies zoals faceting en complexe Boolean‑logica.

Waarom GroupDocs.Search gebruiken voor faceted en complex queries?

  • Out‑of‑the‑box faceting – filter op velden zoals bestandsnaam, grootte, of aangepaste metadata.
  • Rich query language – combineer tekst-, frase- en veldqueries met AND/OR/NOT‑operatoren.
  • Scalable performance – indexeert miljoenen documenten terwijl de zoeklatentie laag blijft.
  • Pure Java – geen native afhankelijkheden, werkt op elk platform dat JDK 8+ draait.

Vereisten

Voordat we beginnen, zorg ervoor dat je het volgende hebt:

  • JDK 8 of nieuwer geïnstalleerd en geconfigureerd in je IDE.
  • Maven (of Gradle) voor afhankelijkheidsbeheer.
  • GroupDocs.Search for Java ≥ 25.4.
  • Basiskennis van Java OOP-concepten en Maven‑projectstructuur.

GroupDocs.Search voor Java instellen

Maven‑configuratie

Add the repository and dependency to your pom.xml file:

<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>

Directe download

Alternatively, download the latest JAR from the official release page:
GroupDocs.Search for Java releases

Licentie‑acquisitie

To unlock full functionality:

  1. Free trial – perfect voor ontwikkeling en testen.
  2. Temporary evaluation license – verlengt de proeflimieten.
  3. Commercial license – verwijdert alle beperkingen voor productiegebruik.

Basisinitialisatie en -configuratie

The following snippet shows how to create a search index Java by instantiating the Index class:

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!");
    }
}

Met de index klaar, kunnen we doorgaan naar faceted en complex queries uit de praktijk.

Hoe create search index java – Eenvoudige faceted zoekopdracht

Faceted search stelt eindgebruikers in staat resultaten te verfijnen door waarden uit vooraf gedefinieerde categorieën (facetten) te selecteren. Hieronder vind je een stap‑voor‑stap walkthrough.

Stap 1: Maak een index

First, point the Index to a folder where the index files will be stored.

import com.groupdocs.search.Index;

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

Stap 2: Voeg documenten toe aan de index

Tell GroupDocs.Search where your source documents live. All supported file types (PDF, DOCX, TXT, etc.) will be indexed automatically.

import com.groupdocs.search.Index;

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

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

Stap 3: Voer een zoekopdracht uit in het content‑veld met een tekstquery

A quick text query filters by the content field. The syntax content: Pellentesque limits results to documents containing the word Pellentesque in their body text.

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());

Stap 4: Voer een zoekopdracht uit met een object‑query

Object‑based queries give you fine‑grained control. Here we build a word query, wrap it in a field query, and execute it.

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());

Hoe create search index java – Complexe query‑zoekopdracht

Complexe queries combineren meerdere velden, Boolean‑operatoren en frase‑zoekopdrachten. Dit is ideaal voor scenario’s zoals e‑commerce filters of juridisch documentonderzoek.

Stap 1: Maak een index voor complexe queries

Reuse the same folder structure; you can share the index across both simple and complex scenarios.

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

Stap 2: Voer een zoekopdracht uit met een tekstquery

The following query looks for files named lorem and ipsum or content containing either of two exact phrases.

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());

Stap 3: Voer een zoekopdracht uit met een object‑query

Object‑based construction mirrors the textual query but offers type safety and IDE assistance.

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());

Praktische toepassingen van faceted & complex searches

ScenarioHoe faceting helptVoorbeeldquery
E‑commerce catalogFilter op categorie, prijs, merkcategory: Electronics AND price:[100 TO 500]
Legal document repositoryBeperk op zaaknummer, jurisdictiecaseNumber: 2023-045 AND jurisdiction: "California"
Research archivesCombineer auteur, publicatiejaar, trefwoorden(author: "Doe") AND (year: 2022) AND (keywords: "machine learning")
Enterprise intranetZoek op bestandstype en afdelingfiletype: pdf AND department: HR

Veelvoorkomende valkuilen & probleemoplossing

  • Empty results – Controleer of de documenten succesvol zijn toegevoegd (index.getDocumentCount() kan helpen).
  • Stale index – Na het toevoegen of verwijderen van bestanden, roep index.update() aan om de index gesynchroniseerd te houden.
  • Incorrect field names – Gebruik CommonFieldNames constanten (Content, FileName, etc.) om typefouten te vermijden.
  • Performance bottlenecks – Overweeg voor enorme collecties index.setCacheSize() in te schakelen of een dedicated SSD voor de indexmap te gebruiken.

Veelgestelde vragen

Q: Kan ik GroupDocs.Search gebruiken met Spring Boot?
A: Absoluut. Voeg gewoon de Maven‑dependency toe, configureer de index als een Spring‑bean, en injecteer deze waar nodig.

Q: Ondersteunt de bibliotheek aangepaste metadata‑velden?
A: Ja – je kunt tijdens het indexeren gebruikers‑gedefinieerde velden toevoegen en vervolgens facetten op deze velden.

Q: Hoe groot kan de index worden?
A: De index is schijf‑gebaseerd en kan miljoenen documenten aan; zorg gewoon voor voldoende opslag en houd de cache‑instellingen in de gaten.

Q: Is er een manier om resultaten te rangschikken op relevantie?
A: GroupDocs.Search kent automatisch scores toe aan overeenkomsten; je kunt de score ophalen via SearchResult.getDocument(i).getScore().

Q: Wat gebeurt er als ik versleutelde PDF’s indexeer?
A: Geef het wachtwoord op bij het toevoegen van het document: index.add(filePath, password).

Conclusie

Tegenwoordig zou je je comfortabel moeten voelen met creating a search index Java met GroupDocs.Search, documenten toevoegen, en zowel eenvoudige faceted queries als geavanceerde Boolean‑zoekopdrachten opstellen. Deze mogelijkheden stellen je in staat snelle, nauwkeurige en gebruiksvriendelijke zoekervaringen te leveren over een breed scala aan toepassingen — van e‑commerce platforms tot enterprise‑kennisbanken.

Klaar voor de volgende stap? Ontdek de geavanceerde functies van GroupDocs.Search zoals highlighting, suggestions, en real‑time indexing om de zoekkracht van je applicatie verder te vergroten.


Laatst bijgewerkt: 2025-12-16
Getest met: GroupDocs.Search 25.4 for Java
Auteur: GroupDocs