Fulltextové vyhledávání je způsob prohledávání textu/dotazu ve sbírce dokumentů. Tento přístup rychle najde všechny výskyty termínu/fráze a funguje pomocí textových indexů. V tomto článku se naučíme, jak programově fulltextově vyhledávat v dokumentech pomocí Javy.

Fulltextové vyhledávání

Poté můžete implementovat různé vyhledávací techniky a vytvořit své vyhledávací řešení pro textové dokumenty, tabulky, prezentace, soubory HTML, soubory PDF, elektronické knihy, e-mailové zprávy, archivy ZIP a mnoho dalších formátů dokumentů.

Níže jsou uvedena následující témata:

Java API pro fulltextové vyhledávání

GroupDocs.Search poskytuje fulltextové vyhledávání Java API, které lze integrovat do jakékoli aplikace bez jakéhokoli nástroje třetí strany a závislosti na softwaru. Umožňuje vám prohledávat velký seznam formátů dokumentů. Některé z vyhledávacích technik, které lze provádět pomocí API, jsou následující:

  • Vyhledávání rozlišující malá a velká písmena
  • Vyhledávání regulárních výrazů
  • Fasetované vyhledávání
  • Fuzzy vyhledávání
  • Vyhledávání homofonů
  • Synonymum Hledat

Stáhnout nebo Konfigurovat

Soubor JAR si můžete stáhnout z části ke stažení nebo si můžete stáhnout nejnovější úložiště a konfigurace závislostí pro pom.xml vašich Java aplikací založených na maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>21.3</version> 
</dependency>

Existují dva kroky k provedení vyhledávání v souborech uložených ve složce.

  • Indexování
  • Proveďte vyhledávání

Indexujte soubory pomocí Javy

Rejstřík obsahuje naskenovaný text všech dokumentů. Proto, když se chystáte provést operaci vyhledávání, odkazuje se pouze na rejstřík, nikoli na text původních dokumentů. Aby bylo možné okamžitě vyhledávat v tisících dokumentů se stejnými nebo různými formáty souborů, musíte vytvořit rejstřík a tyto dokumenty do něj přidat. Když jsou dokumenty indexovány, index je připraven zpracovat vyhledávací dotazy.

Následující jednoduché dva řádky vytvoří rejstřík a také přidají složku dokumentů do rejstříku.

Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");

Po indexování více dokumentů ve stejných nebo různých formátech, jako je (Word, PDF, Excel a HTML), můžeme přejít ke zpracování konkrétního vyhledávacího dotazu (hledaný výraz „Draw“) nad nimi. Níže jsou uvedeny kroky, jak provést textové vyhledávání ve více dokumentech ve složce pomocí Java:

  • Určete zdrojovou složku dokumentů a složku indexu.
  • Vytvořte Index pomocí složky indexu.
  • Přidejte zdrojovou složku do indexu.
  • Připravte řetězec dotazu.
  • Proveďte vyhledávání pomocí metody search třídy Index.
  • Procházejte jednotlivé výsledky vyhledávání pro vlastnosti každého dokumentu.

Následující zdrojový kód provádí textové vyhledávání v jazyce Java ve všech dokumentech poskytnuté složky.

// Prohledávejte zadaný text ve více PDF, Word, Excel, HTML dokumentech ve složce pomocí Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");

// Hledání zadaného textu v rejstříku
SearchResult result = index.search("Draw");

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

Získáme cestu k dokumentu a počet výskytů hledaných výrazů ve všech dokumentech se zadanou složkou. Zde je snímek obrazovky pro vizualizaci.

Plně vyhledávaný textový výstup

Zvýrazněte výsledky textového vyhledávání v Java

Pojďme nyní provést stejné fulltextové vyhledávání a také zvýraznit všechny výskyty, které odpovídají vašemu dotazu.

Následující kroky ukazují, jak zvýraznit výsledky textového vyhledávání:

  • Vytvořte Indexa přidejte složku dokumentů do indexu.
  • Připravte řetězec dotazu.
  • Prohledejte složku dokumentů pomocí metody search.
  • Při procházení výsledků vytvořte zvýrazňovač pomocí HtmlHighlighter.
  • Ke zvýraznění výsledků vyhledávání použijte metodu zvýraznění.

Následující kód generuje výstup HTML se zvýrazněnými výsledky vyhledávání pomocí jazyka Java.

// Zvýrazněte výsledky fulltextového vyhledávání více dokumentů ve složce v Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder

String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

for (int i = 0; i < result.getDocumentCount(); i++) 
{
    FoundDocument document = result.getFoundDocument(i);

    String path = "path/Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
    index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}

Jako výstup získáme více HTML souborů. Každý soubor zobrazí obsah samostatného dokumentu (např. excel.xlsx, source.docx, target.docx) se zvýrazněnými hledanými výrazy/slovy. Níže je uveden zvýrazněný HTML výstup souboru DOCX, souboru TXT a souboru PDF získaného pomocí výše uvedeného kódu.

Zvýrazněte výsledky fulltextového vyhledávání v obsahu pomocí Javy

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci, abyste mohli používat API bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili prohledávat text ve více dokumentech složky v Java. Dále jsme diskutovali o tom, jak programově zvýraznit text výsledků vyhledávání ve formátu HTML pro soubory MS Word, TXT a soubory PDF pomocí GroupDocs.Search for Java.

Více o API se můžete dozvědět pomocí dokumentace. Mnoho dalších příkladů je k dispozici na GitHub. V případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také