Fuzzy Search pomocí Javy

Fuzzy vyhledávání vám pomůže najít obsah, který je podobný, ne úplně stejný, ve vašich datech. Je to super praktické, když se vyskytují malé překlepy, překlepy nebo odchylky v datech. Tento článek je celý o způsobu, jak Java provádět fuzzy vyhledávání k nalezení souborů, které jsou roztroušeny po složkách.

Zde je několik příkladů pro rozpracování ukázkového obsahu fuzzy vyhledávání:

  • Možná si nejste jisti, zda dokument používá pravopis „barva“ nebo „barva“.
  • Když hledáte „John“, mohlo by to být ve skutečnosti napsáno jako „Jon“ nebo možná „Jhon“.
  • Snažím se najít “USA”, i když někdo napíše “USA”
  • Pokud uděláte “chybu”, oh, počkejte, je to vlastně “chyba”.

Řešením k nalezení takového obsahu je Fuzzy Search.

Chcete-li v Java provádět fuzzy vyhledávání, použijeme GroupDocs.Search for Java API. API je vysoce schopné prokázat flexibilitu a poskytuje přizpůsobitelný stupeň tolerance chyb. Tato funkce je výhodná při řešení jazykových variant, jako je britská a americká angličtina, a překlepů.

S touto knihovnou lze provádět fuzzy vyhledávání ve velkém množství různých formátů souborů. Podpora není omezena pouze na dokumenty Word (DOC, DOCX), tabulky (XLS, XLSX), prezentace (PPT, PPTX), PDF, značkovací jazyky (HTML, XML), Markdown (MD), elektronické knihy (EPUB, CHM, FB2), e-maily (MSG, EML), poznámky OneNote a dokonce i archivy ZIP.

Pokud chcete znát všechny typy souborů, které tato magie zvládne, stačí nahlédnout do dokumentace.

Chcete-li začít, můžete si vzít API z část ke stažení nebo přidat nejnovější konfigurace úložiště a závislostí Maven přímo do svých aplikací Java.

Pojďme Fuzzy hledat v souborech pomocí Javy

Chcete-li provést fuzzy vyhledávání ve více souborech různých formátů souborů ve složkách pomocí Java, postupujte takto:

  1. Začněte vytvořením Index pomocí složky, kde jsou vaše soubory.
  2. Přidejte cestu k hlavní složce do indexu.
  3. Zadejte vyhledávací dotaz, který chcete hledat.
  4. Zapněte kouzlo Fuzzy Search, aby porozumělo malým chybám.
  5. Nastavte úroveň podobnosti v fuzzy algoritmu.
  6. Chcete-li získat výsledky vyhledávání, proveďte vyhledávání pomocí metody vyhledávání.
  7. Nyní můžete procházet SearchResults a vytvářet nebo tisknout výstup, jak chcete.

V níže uvedeném kódu Java hledá program ve všech souborech a podsložkách podobný obsah, jaký jste požadovali. Je tolerantní k pravopisným chybám, až 25% chyb. Pokud se podíváte na kód, uvidíte, že úroveň podobnosti je nastavena na 0,75, což odpovídá 75% shodě. Pokud chcete doladit vyhledávání, stačí změnit úroveň podobnosti v kódu.

// Fuzzy Hledání více souborů ve více složkách pomocí Java

// Vytvoření indexové složky a přidání složky dokumentu do ní
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
options.getFuzzySearch().setFuzzyAlgorithm(new SimilarityLevel(0.75));

String query = "nulla"; // search approximate matches of the provided query  
SearchResult result = index.search(query, options);

Po spuštění kódu získáte seznam načtených fuzzy výsledků vyhledávání. Pokud chcete vidět, jak vytisknout výsledky vyhledávání, pokračujte ve čtení tohoto článku.

Query: nulla
 Documents: 2
 Occurrences: 135

     Document: Lorem ipsum.docx
     Occurrences: 132
         Field: content
         Occurrences: 132
             nulla               98
             nullam              34

     Document: EnglishText.txt
     Occurrences: 3
         Field: content
         Occurrences: 3
             dull                1
             full                1
             fully               1

Tisk výsledků hledání

Následující kód Java poskytuje dva způsoby prezentace výsledků vyhledávání.

  • Zvýrazněte všechny přibližné shody.
  • Vytiskněte výsledky v čitelném a analyzovatelném formátu
// Zvýrazněte a vytiskněte výsledky hledání pro všechny dokumenty pomocí Java
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // Tisk nalezených termínů
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}

Získání bezplatné licence nebo bezplatné zkušební verze

Bezplatná licence

Získejte zdarma dočasnou licenci k prozkoumání této knihovny bez omezení.

Zkušební verze zdarma

Můžete si stáhnout bezplatnou zkušební verzi v sekci ke stažení.

Java API pro vyhledávání v souborech a složkách

Závěr

V tomto článku jsme prozkoumali programový způsob Java, jak provádět Fuzzy vyhledávání. Pomáhá najít přibližná shodná slova, která jsou si podobná, i když tam jsou drobné chyby. Tato funkce je užitečná pro řešení rozdílů mezi britskou a americkou angličtinou, překlepů, změn jmen a podobných zvuků ve slovech.

Další informace o rozhraní API naleznete v dokumentaci.

Pokud máte dotazy nebo chcete diskutovat více, přejděte na fórum.


Viz také