Praca z wynikami wyszukiwania za pomocą Java

Efektywne zarządzanie wynikami wyszukiwania jest podstawą wydajnego systemu wyszukiwania dokumentów, a wiedza, jak interpretować i wykorzystywać te wyniki, może znacznie usprawnić podejmowanie decyzji opartych na danych. W tym przewodniku zagłębiamy się w to, jak pracować z wynikami wyszukiwania za pomocą Java. Od ustanowienia repozytorium indeksów po skonfigurowanie rozmytych parametrów wyszukiwania, ten samouczek oferuje prostą, praktyczną metodę obsługi zapytań wyszukiwania i odpowiadających im wyników. Niezależnie od tego, czy analizujesz proste dopasowania terminów, czy bardziej złożone frazy, to podejście umożliwia dokładne przetwarzanie wyników i identyfikowanie wartościowych wzorców. Pod koniec będziesz biegły w tym, jak pobierać wyniki wyszukiwania w Java i stosować je w różnych przypadkach użycia.

Kroki pracy z wynikami wyszukiwania przy użyciu języka Java

  1. Dodaj bibliotekę GroupDocs.Search for Java do swojego projektu, aby pracować z wynikami wyszukiwania
  2. Utwórz obiekt indeksu przy użyciu klasy Index i określ lokalizację folderu do przechowywania indeksu
  3. Użyj metody Index.add, aby indeksować dokumenty z wyznaczonego folderu
  4. Utwórz instancję SearchOptions i włącz wyszukiwanie rozmyte, wywołując FuzzySearch.setEnabled(true)
  5. Ustaw maksymalną liczbę dozwolonych różnic (np. 3) za pomocą metody setFuzzyAlgorithm
  6. Wywołaj metodę Index.search, aby wyszukać dokumenty zawierające określone terminy lub frazy, wraz ze skonfigurowanymi opcjami wyszukiwania
  7. Wyświetl liczbę dokumentów znalezionych za pomocą metody getDocumentCount i całkowitą liczbę wystąpień terminów wyszukiwania za pomocą metody getOccurrenceCount
  8. Przejrzyj wyniki wyszukiwania, używając metody getFoundDocument, i dla każdego dokumentu wyświetl ścieżkę do pliku i liczbę wystąpień
  9. W przypadku każdego dokumentu przejrzyj kolekcję FoundDocumentField i wyświetl szczegóły, takie jak nazwy pól, liczba wystąpień, znalezione terminy i frazy

Aby skutecznie obsługiwać wyniki wyszukiwania, pierwszym krokiem jest utworzenie repozytorium indeksów dla dokumentów. Za pomocą dostarczonego fragmentu kodu indeks jest tworzony w wyznaczonym folderze, a dokumenty z innego folderu są dodawane do tego indeksu. Następnie opcje wyszukiwania są konfigurowane w celu aktywowania wyszukiwania rozmytego, umożliwiając elastyczne dopasowywanie z określonym progiem różnic. Ta konfiguracja obsługuje wyszukiwanie terminów takich jak Einstein” lub fraz takich jak Teoria względności” przy użyciu zaawansowanych algorytmów. Po wykonaniu wyszukiwania wyniki są pobierane za pomocą obiektu SearchResult. Wyświetlana jest liczba dokumentów pasujących do zapytania i ich liczba wystąpień. Szczegółowe dane dla każdego dokumentu są wyodrębniane, w tym ścieżka pliku i wystąpienia terminu. Poprzez iterowanie po znalezionych polach w każdym dokumencie można wskazać określone pola z dopasowaniami i analizować terminy i frazy wraz z ich częstotliwościami. Poniższy kod pokazuje, jak uzyskać dostęp do wyników wyszukiwania indeksu za pomocą Java, oferując uporządkowany widok pobranych informacji.

Kod do pracy z wynikami wyszukiwania za pomocą języka Java

import com.groupdocs.search.Index;
import com.groupdocs.search.licenses.License;
import com.groupdocs.search.options.SearchOptions;
import com.groupdocs.search.options.TableDiscreteFunction;
import com.groupdocs.search.results.FoundDocument;
import com.groupdocs.search.results.FoundDocumentField;
import com.groupdocs.search.results.SearchResult;
public class WorkwithSearchResultsUsingJava {
public static void main(String[] args) throws Exception {
// Apply the license to remove the restrictions
// imposed by the Search library
License license = new License();
license.setLicense("GroupDocs.Search.lic");
// The path where the index will be stored
String indexFolder = "c:\\MyIndex\\";
// The folder containing the documents you want to search
String documentsFolder = "c:\\MyDocuments\\";
// Creating an index in the specified folder
Index index = new Index(indexFolder);
// Indexing documents from the specified folder
index.add(documentsFolder);
// Creating search options
SearchOptions options = new SearchOptions();
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3)); // Setting the maximum number of differences to 3
// Search for documents containing the word 'Einstein' or the phrase 'Theory of Relativity'
SearchResult result = index.search("Einstein OR \"Theory of Relativity\"", options);
// Printing the result
System.out.println("Documents: " + result.getDocumentCount());
System.out.println("Total occurrences: " + result.getOccurrenceCount());
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
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: " + document.getOccurrenceCount());
// Printing found terms
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]);
}
}
// Printing found phrases
if (field.getTermSequences() != null) {
for (int k = 0; k < field.getTermSequences().length; k++) {
String[] terms = field.getTermSequences()[k];
String sequence = "";
for (String term : terms) {
sequence += term + " ";
}
System.out.println("\t\t\t" + sequence + " - " + field.getTermSequencesOccurrences()[k]);
}
}
}
}
}
}

Prawidłowe zarządzanie i analizowanie wyników wyszukiwania jest niezbędne do wydobycia pełnego potencjału z indeksowanych danych. Ten proces wykracza poza samo pobieranie dokumentów; obejmuje on analizę wystąpień terminów, identyfikację dopasowań w określonych polach i badanie wzorców fraz. Przedstawiona tutaj metoda umożliwia dokładne i uporządkowane badanie wyników, odblokowując głębsze spostrzeżenia dotyczące danych. Ponadto międzyplatformowa zgodność biblioteki gwarantuje płynną integrację w różnych systemach i środowiskach, zwiększając jej elastyczność w przypadku zadań związanych z wyszukiwaniem. Opanowując tę technikę, będziesz w stanie wydajnie obsługiwać wyniki wyszukiwania w Javie i stosować je w szerokiej gamie przypadków użycia, od analizy danych po wyszukiwanie dokumentów w czasie rzeczywistym.

Wcześniej udostępniliśmy szczegółowy przewodnik dotyczący tworzenia raportów wyszukiwania przy użyciu języka Java. Aby śledzić cały proces krok po kroku, przeczytaj nasz szczegółowy artykuł na temat utwórz raport wyszukiwania za pomocą Java.

 Polski