Zvýraznění výsledků vyhledávání Java – synchronní a asynchronní indexování

V tomto průvodci se dozvíte, jak zvýraznit výsledky vyhledávání Java pomocí knihovny GroupDocs.Search, a krok za krokem uvidíte, jak indexovat dokumenty Java synchronně i asynchronně. Ať už vytváříte malý desktopový nástroj nebo rozsáhlou podnikovou vyhledávací službu, tyto techniky vám umožní poskytovat okamžité, vizuálně jasné shody bez blokování vláken aplikace.

Rychlé odpovědi

  • Co znamená “highlight search results Java”? Znamená to, že se každý nalezený termín v vrácených úryvcích obalí značkou (např. <mark>), aby uživatelé okamžitě viděli kontext nálezu.
  • Kdy mám použít synchronní indexování? Použijte jej pro malé až střední kolekce, kde potřebujete, aby byl dokument vyhledatelný okamžitě po jeho přidání.
  • Kdy je asynchronní indexování výhodnější? Zvolte jej pro velké dávky nebo když UI vlákno musí zůstat responzivní, zatímco se index vytváří na pozadí.
  • Potřebuji licenci? Bezplatná zkušební verze funguje pro vývoj; plná licence odstraňuje omezení a odemyká pokročilé funkce.
  • Která verze Javy je podporována? Java 8 nebo novější.

Co je “highlight search results Java”?

highlight search results java je proces, při kterém se vezmou surová data o shodách z GroupDocs.Search a vloží se vizuální indikátory—typicky HTML <mark> tagy—kolem každého nalezeného termínu. To způsobí, že jsou úryvky výsledků okamžitě čitelné na webové stránce nebo ve Swing komponentě, čímž se zlepšuje uživatelská zkušenost tím, že ukazuje přesně, kde se dotaz vyskytuje.

Proč používat GroupDocs.Search pro Javu?

GroupDocs.Search poskytuje výkonný, jazykově agnostický engine, který dokáže zpracovat až 5 000 dokumentů za sekundu, podporovat více než 30 formátů souborů a indexovat kolekce až 10 milionů dokumentů bez načítání celého korpusu do paměti. Jeho vestavěné zvýrazňování, indexování v reálném čase a vícejazykové analyzátory jej činí ideálním pro systémy pro správu obsahu, e‑commerce katalogy a podnikové úložiště dokumentů.

Předpoklady

  • Java Development Kit (JDK 8 nebo novější) nainstalovaný a JAVA_HOME správně nastavený.
  • IDE jako IntelliJ IDEA nebo Eclipse.
  • Složka (např. documents/) obsahující soubory, které chcete indexovat—prostý text, PDF, DOCX atd.
  • Maven pro správu závislostí (nebo můžete JAR přidat ručně).

Požadované knihovny a závislosti

Přidejte GroupDocs.Search do vašeho Maven 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>

Pro přímé stažení získáte nejnovější verzi z GroupDocs.Search for Java releases.

Nastavení prostředí

  • Ověřte, že JAVA_HOME ukazuje na kompatibilní JDK.
  • Vytvořte nový Maven projekt a vložte výše uvedený úryvek do sekce <dependencies>.
  • Umístěte ukázkové soubory do adresáře jako src/main/resources/documents/.

Jak nastavit GroupDocs.Search pro Javu

Index je základní třída představující vyhledávatelnou kolekci uloženou na disku.

Vytvořte instanci Index, která ukazuje na složku na disku, použijte licenci, pokud ji máte, a volitelně nakonfigurujte analyzátor pro jazykově specifickou tokenizaci. Tento přípravný krok zajišťuje, že engine může efektivně číst, zapisovat a prohledávat index.

Třída Index je hlavní komponentou, která představuje vyhledávatelnou kolekci na disku. Po jejím vytvoření všechny operace indexování a dotazování procházejí tímto objektem.

  1. Instalace knihovny – Použijte Maven úryvek výše nebo stáhněte JAR z GroupDocs.
  2. Získání licence – Začněte se zkušební licencí; před nasazením ji nahraďte produkčním klíčem.
  3. Inicializace indexu – Následující úryvek ukazuje, jak vytvořit (nebo otevřít) složku indexu:
import com.groupdocs.search.Index;

// Create an index in the specified folder
Index index = new Index("path/to/index/folder");

Jak zvýraznit výsledky vyhledávání Java – synchronní indexování

DocumentHighlighter je pomocná třída, která generuje zvýrazněné úryvky z výsledků vyhledávání.

Načtěte index, přidejte dokumenty pomocí index.add(documentPath), spusťte dotaz a poté zavolejte DocumentHighlighter, aby obalil shody tagy <mark>. Celý proces běží ve volajícím vlákně, takže se dokument stane vyhledatelným okamžitě po návratu add pro koncové uživatele.

Krok 1: vytvořte index a připojte zpracování chyb

import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
import java.nio.file.Paths;

public class SynchronousIndexingFeature {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY/SynchronousIndexing";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path

        Index index = new Index(indexFolder);

        // Handle errors
        index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
            @Override
            public void invoke(Object sender, IndexErrorEventArgs args) {
                System.out.println(args.getMessage());
            }
        });

Krok 2: přidejte dokumenty a spusťte vyhledávání

        // Add documents
        index.add(documentsFolder);

        // Perform a search
        String query = "tincidunt";
        SearchResult result = index.search(query);

Krok 3: zpracujte výsledky a zvýrazněte výsledky vyhledávání Java

        for (int i = 0; i < result.getDocumentCount(); i++) {
            FoundDocument document = result.getFoundDocument(i);
            System.out.println(": Document: " + document.getDocumentInfo().getFilePath());
            System.out.println(": Occurrences: " + document.getOccurrenceCount());
        }

        // Highlight results
        if (result.getDocumentCount() > 0) {
            FoundDocument document = result.getFoundDocument(0);
            String path = YOUR_OUTPUT_DIRECTORY + "/Highlighted.html";
            OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, path);
            DocumentHighlighter highlighter = new DocumentHighlighter(outputAdapter);
            index.highlight(document, highlighter);
        }
    }
}

Jak zvýraznit výsledky vyhledávání Java – asynchronní indexování

IndexingOptions konfiguruje, jak proces indexování běží, včetně synchronního nebo asynchronního režimu.

Nastavte IndexingOptions tak, aby běžely v režimu na pozadí, přihlaste se k událostem StatusChanged a nechte engine indexovat soubory, zatímco UI pokračuje v obsluze dalších požadavků. Jakmile se stav změní na Ready, můžete provádět vyhledávání a získávat zvýrazněné úryvky stejně jako v synchronním režimu.

AsyncIndexingListener přijímá aktualizace postupu, což vám umožní zobrazit ukazatel průběhu nebo zaznamenávat stav bez blokování hlavního vlákna.

Krok 1: nastavte index s posluchači událostí

import com.groupdocs.search.*;
import com.groupdocs.search.events.*;

public class AsynchronousIndexingFeature {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AsynchronousIndexing";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path

        Index index = new Index(indexFolder);

        // Handle errors and status changes
        index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
            @Override
            public void invoke(Object sender, IndexErrorEventArgs args) {
                System.out.println(args.getMessage());
            }
        });

        index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
            @Override
            public void invoke(Object sender, BaseIndexEventArgs args) {
                if (args.getStatus() != IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
                    System.out.println("Indexing completed.");
                }
            }
        });

Krok 2: povolte asynchronní režim a spusťte indexování

        // Set up async indexing options
        IndexingOptions options = new IndexingOptions();
        options.setAsync(true);

        // Add documents asynchronously
        index.add(documentsFolder, options);
    }
}

Jak indexovat dokumenty Java – praktické tipy

index.update(path) aktualizuje existující dokument v indexu souborem na zadané cestě.

Rozdělte velké kolekce na dávky po 1 000–5 000 souborech, filtrujte podle přípony, abyste se vyhnuli zbytečnému parsování, a použijte index.update(path) pro změněné soubory místo přestavování celého indexu. Tyto postupy udržují nízké využití paměti a předvídatelný čas indexování pro zachování konzistence.

  • Velikost dávky: Pro obrovské kolekce rozdělte složku na menší dávky, aby nedocházelo k nárůstu paměti.
  • Filtry souborů: Použijte IndexingOptions.setFileExtensions, aby zahrnovaly pouze formáty, které potřebujete (např. .pdf, .docx).
  • Re‑indexování: Když se dokument změní, zavolejte index.update(documentPath) místo vytvoření indexu od začátku.

Úvahy o výkonu

  • Paměť: Sledujte využití haldy; zvýšte -Xmx, pokud zpracováváte mnoho velkých souborů současně.
  • CPU: Asynchronní indexování rozkládá zátěž mezi vlákna, ale stále spotřebovává CPU—sledovat využití pomocí JVisualVM.
  • Zvýrazňování výsledků: Zvýrazňování přidává mírnou režii (≈ 2–5 ms na výsledek). Uložte v mezipaměti vygenerované HTML, pokud potřebujete opakovaně zobrazovat stejné úryvky.

Často kladené otázky

Q: Mohu kombinovat synchronní a asynchronní indexování ve stejné aplikaci?
A: Ano. Používejte synchronní indexování pro malé, často aktualizované sady a asynchronní indexování pro hromadné importy nebo úlohy na pozadí.

Q: Jak mohu přizpůsobit styl zvýraznění?
A: Poskytněte vlastní implementaci DocumentHighlighter, která zapíše požadované HTML, CSS nebo XML tagy kolem nalezených termínů.

Q: Jaké typy souborů GroupDocs.Search podporuje přímo z krabice?
A: Text, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, HTML a mnoho dalších pomocí vestavěných parserů—celkem více než 30 formátů.

Q: Je možné vyhledávat ve více jazycích současně?
A: Rozhodně. GroupDocs.Search zahrnuje vícejazykové analyzátory; stačí při vytváření indexu nakonfigurovat odpovídající Analyzer.

Q: Jak zabezpečím složku s indexem?
A: Uložte index do chráněného adresáře, nastavte přísná oprávnění souborového systému a volitelně index zašifrujte pomocí bezpečnostních funkcí knihovny.


Poslední aktualizace: 2026-09-11
Testováno s: GroupDocs.Search 25.4 pro Javu
Autor: GroupDocs

Související tutoriály