Wir haben kürzlich diskutiert, wie man alle Synonyme eines beliebigen Wortes bekommt. Es wäre wunderbar, wenn wir diese Synonyme in vielen verschiedenen Dokumenten finden könnten. In diesem Artikel werden wir sehen, wie man mit Java ein beliebiges Wort und seine Synonyme in mehreren Dateien sucht.

Im Folgenden werden die folgenden Themen behandelt:

Java API - Suche nach Synonymen in mehreren Dateien

GroupDocs.Search präsentiert die Java-API GroupDocs.Search for Java. Es ermöglicht die Suche nach Wörtern und ihren Synonymen in mehreren Dateien des angegebenen Ordners. Es unterstützt eine lange Liste verschiedener Dateiformate und verschiedene Suchtechniken Einige dieser Funktionen werden unten erwähnt und Sie können sie in Kombination verwenden, um Ihr Ziel zu erreichen:

  • Boolesche Suche
  • Suche mit Berücksichtigung der Groß- und Kleinschreibung
  • Suchergebnisse hervorheben
  • Suche nach Homophonen
  • Phrasensuche
  • Suche nach regulären Ausdrücken
  • Suche nach Chunks
  • Synonymsuche

Herunterladen oder Konfigurieren

Sie können die JAR-Datei aus dem Download-Bereich herunterladen oder einfach die neuesten Repository- und Abhängigkeitskonfigurationen für die pom.xml Ihrer maven-basierten Java-Anwendungen abrufen.

<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.8</version> 
</dependency>

Finden Sie Synonyme in mehreren Dateien mit Java

Lassen Sie uns schnell nach Synonymen in Dateien suchen. Die folgenden Schritte zeigen, wie Sie mit Java in Dateien innerhalb eines Ordners nach Synonymen (Wörtern mit ähnlicher Bedeutung) suchen:

  • Definieren Sie den Indexordner, den Ordner des Dokuments und die Abfrage (das zu durchsuchende Wort).
  • Erstellen Sie einen Index unter Verwendung eines definierten Indexordners mit der Klasse Index.
  • Fügen Sie den Ordner der Dokumente zum Index hinzu.
  • Aktivieren Sie die Synonymsuche mit SearchOptions.
  • Rufen Sie die Methode search der Klasse Index auf und übergeben Sie die Abfrage mit Suchoptionen.
  • Drucken Sie die Zusammenfassung unter Verwendung der Eigenschaften der abgerufenen SearchResult-Klasse.

Der folgende Quellcode zeigt, wie Sie mit Java alle Synonyme in Dateien finden:

// Suchen Sie mit Java nach Synonymen in mehreren Dateien und Ordnern
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "make";

// Erstellen eines Index im angegebenen Ordner
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Erstellen eines Suchoptionsobjekts
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true); // Enable Synonym Search

// Suchen Sie nach dem Wort „machen“
// Neben dem Wort „make“ wird auch nach den Synonymen „do, get, have, ...“ gesucht
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Synonym Occurrences: " + result.getOccurrenceCount());

Das Folgende ist die Ausgabe des obigen Codes:

Query: **make**
Documents: 3
Word & Synonym Occurrences: 44 

Aus den im obigen Schritt erhaltenen Suchergebnissen können Sie die Informationen zu jedem Wort und Synonym der Suche abrufen. Die folgenden Schritte stellen die Ergebnisse im Detail dar, nachdem alle Synonyme und ihre Häufigkeit in jedem Dokument abgerufen wurden:

  • Führen Sie zuerst die Suche durch, um das SearchResult zu erhalten.
  • Durchsuchen Sie das Suchergebnis, um mit jedem FoundDocument zu arbeiten.
  • Drucken Sie die jeweiligen Eigenschaften von jedem FoundDocument.
  • Extrahieren und durchlaufen Sie nun das FoundDocumentField in jedem FoundDocument.
  • Jedes FoundDocumentField enthält seine Begriffe, Vorkommen und andere Eigenschaften. Verwenden Sie den entsprechenden Getter.

Der folgende Quellcode zeigt das Ergebnis der Synonymsuche zusammen mit der Anzahl der Vorkommen jedes gesuchten Begriffs in Java an.

// Drucken der Ergebnisse der Synonymsuche in Java
System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Synonym Occurrences: " + result.getOccurrenceCount());

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

  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Gefundene Begriffe drucken
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

Das Folgende ist die Ausgabe des obigen Codes:

Query: **make**
Documents: 2
Total occurrences: 22

Document: C:/documents/sample.docx
Occurrences: 13
    Field: content
    Occurrences: 13
        **make**  -  2
        **have**  -  1
        **get**  -  2
        **do**  -  8
- - - - - - - - - - - - - - - - 
Document: C:/documents/sample.txt
Occurrences: 11
    Field: content
    Occurrences: 11
        **make**  -  1
        **have**  -  2
        **get**  -  1
        **do**  -  7
- - - - - - - - - - - - - - - - 
Document: C:/documents/sample.pdf
Occurrences: 20
    Field: content
    Occurrences: 20
        **make**  -  2
        **have**  -  2
        **get**  -  2
        **do**  -  14 

Suchsynonyme und Druckergebnisse in Java – Vollständiger Code

Lassen Sie uns die beiden obigen Schritte kombinieren, also ist hier der vollständige Quellcode. Zuerst findet es alle Synonyme gemäß der bereitgestellten Abfrage. Dann gibt es alle Vorkommen jedes Synonyms in jedem Dokument in Java aus.

// Suchen Sie mit Java nach Synonymen in mehreren Dateien und Ordnern
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "make";

// Erstellen eines Index im angegebenen Ordner
Index index = new Index(indexFolder);
index.add(documentsFolder);

// Erstellen eines Suchoptionsobjekts
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true); // Enable Synonym Search

// Suchen Sie nach dem Wort „machen“
// Neben dem Wort „make“ wird auch nach den Synonymen „do, get, have, ...“ gesucht
SearchResult result = index.search(query, options);

System.out.println("Query: " + query);
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Word & Synonym Occurrences: " + result.getOccurrenceCount());

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

  for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\tField: " + field.getFieldName());
        System.out.println("\tOccurrences: " + document.getOccurrenceCount());
  
        // Gefundene Begriffe drucken
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t" + field.getTerms()[k] + "\t - \t" + field.getTermsOccurrences()[k]);
            }
        }
    }
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Zusammenfassend haben wir besprochen, wie man ein beliebiges Wort zusammen mit seinem Synonym in mehreren Dokumenten mit Java sucht. Am wichtigsten ist, dass Sie jetzt versuchen können, Ihre eigene Java-App für die Suche zu entwickeln, genau wie GroupDocs.Search App.

Weitere Informationen über die Java Search Automation API finden Sie in der Dokumentation. Probieren Sie Beispiele aus dem GitHub-Repository aus, um die Funktionen zu erleben. Fühlen Sie sich frei, uns für Fragen über das Forum zu erreichen.

Siehe auch