Niedawno rozmawialiśmy o tym, jak uzyskać wszystkie synonimy dowolnego słowa. Byłoby wspaniale, gdybyśmy mogli zlokalizować te synonimy w wielu różnych dokumentach. W tym artykule zobaczymy, jak wyszukiwać dowolne słowo i jego synonimy w wielu plikach za pomocą Javy.
Oto tematy omówione poniżej:
- Java API – Wyszukiwanie synonimów
- Znajdź synonimy w dokumentach w Javie
- Prezentuj wyniki wyszukiwania synonimów
- Kompletny kod Java — wyszukiwanie i drukowanie wyników wyszukiwania synonimów
Java API - Szukaj synonimów w wielu plikach
GroupDocs.Search prezentuje API Java GroupDocs.Search for Java. Umożliwia wyszukiwanie słów i ich synonimów w wielu różnych plikach w określonym folderze. Obsługuje długą listę różnych formatów plików i różne techniki wyszukiwania Niektóre z tych funkcji są wymienione poniżej i możesz ich używać w połączeniu, aby osiągnąć swój cel:
- Wyszukiwanie logiczne
- Wyszukiwanie z uwzględnieniem wielkości liter
- Zaznacz wyniki wyszukiwania
- Wyszukiwanie homofonów
- Wyszukiwanie fraz
- Wyszukiwanie wyrażeń regularnych
- Szukaj według kawałków
- Wyszukiwanie synonimów
Pobierz lub skonfiguruj
Możesz pobrać plik JAR z sekcji pobierania lub po prostu pobrać najnowsze konfiguracje repozytorium i zależności dla pliku pom.xml aplikacji Java opartych 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.8</version>
</dependency>
Znajdź synonimy w wielu plikach za pomocą Java
Przejdźmy szybko do wyszukiwania synonimów w plikach. Poniższe kroki pokazują, jak wyszukiwać synonimy (słowa o podobnym znaczeniu) w plikach w folderze przy użyciu języka Java:
- Zdefiniuj folder indeksu, folder dokumentu i zapytanie (słowo do wyszukania).
- Utwórz indeks, używając zdefiniowanego folderu indeksu, używając klasy Indeks.
- Dodaj folder dokumentów do indeksu.
- Włącz wyszukiwanie synonimów za pomocą SearchOptions.
- Wywołaj metodę search klasy Index i przekaż zapytanie z opcjami wyszukiwania.
- Wydrukuj podsumowanie, korzystając z właściwości pobranej klasy SearchResult.
Poniższy kod źródłowy pokazuje, jak znaleźć wszystkie synonimy w plikach przy użyciu języka Java:
// Wyszukuj synonimy w wielu plikach i folderach przy użyciu języka Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "make";
// Tworzenie indeksu w określonym folderze
Index index = new Index(indexFolder);
index.add(documentsFolder);
// Tworzenie obiektu opcji wyszukiwania
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true); // Enable Synonym Search
// Wyszukaj słowo „robić”
// Oprócz słowa „make” wyszukiwane będą również synonimy „do, get, have,…”
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());
Poniżej przedstawiono dane wyjściowe powyższego kodu:
Query: **make**
Documents: 3
Word & Synonym Occurrences: 44
Drukowanie wyników wyszukiwania synonimów przy użyciu języka Java
Z wyników wyszukiwania uzyskanych w powyższym kroku możesz uzyskać informacje dotyczące każdego słowa i synonimu wyszukiwania. Poniższe kroki przedstawiają szczegółowe wyniki po uzyskaniu wszystkich synonimów i liczby ich wystąpień w każdym dokumencie:
- Najpierw wykonaj wyszukiwanie, aby uzyskać SearchResult.
- Przejrzyj wynik wyszukiwania, aby pracować z każdym FoundDocument.
- Wydrukuj odpowiednie właściwości każdego znalezionego dokumentu.
- Teraz wyodrębnij, a następnie przejrzyj FoundDocumentField w każdym znalezionym dokumencie.
- Każde pole FoundDocumentField zawiera swoje terminy, wystąpienia i inne właściwości. Użyj odpowiedniego gettera.
Poniższy kod źródłowy wyświetla wynik wyszukiwania synonimów wraz z liczbą wystąpień każdego wyszukiwanego terminu w Javie.
// Drukowanie wyników wyszukiwania synonimów w języku 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());
// Drukowanie znalezionych terminów
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]);
}
}
}
}
Poniżej przedstawiono dane wyjściowe powyższego kodu:
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
Wyszukaj synonimy i wyniki drukowania w języku Java — kompletny kod
Połączmy powyższe dwa kroki, więc oto pełny kod źródłowy. Po pierwsze, znajduje wszystkie synonimy zgodnie z podanym zapytaniem. Następnie drukuje wszystkie wystąpienia każdego synonimu w każdym dokumencie w Javie.
// Wyszukuj synonimy w wielu plikach i folderach przy użyciu języka Java
String indexFolder = "path/indexFolder";
String documentsFolder = "path/documentsFolder";
String query = "make";
// Tworzenie indeksu w określonym folderze
Index index = new Index(indexFolder);
index.add(documentsFolder);
// Tworzenie obiektu opcji wyszukiwania
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true); // Enable Synonym Search
// Wyszukaj słowo „robić”
// Oprócz słowa „make” wyszukiwane będą również synonimy „do, get, have,…”
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());
// Drukowanie znalezionych terminów
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]);
}
}
}
}
Uzyskaj bezpłatną licencję API
Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.
Wniosek
Podsumowując, omówiliśmy, jak wyszukiwać dowolne słowo wraz z jego synonimem w wielu dokumentach przy użyciu języka Java. Co najważniejsze, teraz możesz spróbować stworzyć własną aplikację Java do wyszukiwania, taką jak GroupDocs.Search App.
Dowiedz się więcej o interfejsie Java Search Automation API z dokumentacji. Aby poznać te funkcje, wypróbuj przykłady z repozytorium GitHub. Zachęcamy do kontaktu z nami w przypadku jakichkolwiek pytań za pośrednictwem forum.