O gerenciamento eficiente dos resultados de pesquisa é fundamental para um sistema de recuperação de documentos poderoso, e saber como interpretar e usar esses resultados pode melhorar muito as decisões baseadas em dados. Neste guia, nos aprofundamos em como trabalhar com resultados de pesquisa usando Java. Desde o estabelecimento de um repositório de índice até a configuração de parâmetros de pesquisa fuzzy, este tutorial oferece um método direto e prático para lidar com consultas de pesquisa e seus resultados correspondentes. Quer você esteja analisando correspondências de termos simples ou frases mais complexas, essa abordagem permite que você processe os resultados completamente e identifique padrões valiosos. No final, você será proficiente em como recuperar resultados de pesquisa em Java e aplicá-los em vários casos de uso.
Etapas para trabalhar com resultados de pesquisa usando Java
- Adicione a biblioteca GroupDocs.Search for Java ao seu projeto para trabalhar com resultados de pesquisa
- Crie um objeto de índice usando a classe Index e especifique o local da pasta para armazenar o índice
- Use o método Index.add para indexar documentos da pasta designada
- Crie uma instância SearchOptions e habilite a pesquisa difusa chamando FuzzySearch.setEnabled(true)
- Defina as diferenças máximas permitidas (por exemplo, 3) com o método setFuzzyAlgorithm
- Chame o método Index.search para pesquisar documentos que contenham os termos ou frases especificados, juntamente com as SearchOptions configuradas
- Exibe o número de documentos encontrados usando o método getDocumentCount e o total de ocorrências de termos de pesquisa com o método getOccurrenceCount
- Itere pelos resultados da pesquisa usando o método getFoundDocument e, para cada documento, mostre o caminho do arquivo e a contagem de ocorrências
- Para cada documento, percorra a coleção FoundDocumentField e exiba detalhes como nomes de campos, contagens de ocorrências, termos encontrados e frases
Para lidar efetivamente com os resultados da pesquisa, o primeiro passo é estabelecer um repositório de índice para seus documentos. Com o snippet de código fornecido, um índice é criado em uma pasta designada, e documentos de outra pasta são adicionados a esse índice. Em seguida, as opções de pesquisa são configuradas para ativar a pesquisa difusa, permitindo correspondência flexível com um limite definido para diferenças. Essa configuração oferece suporte a pesquisas por termos como Einstein ou frases como Teoria da Relatividade usando algoritmos sofisticados. Após executar a pesquisa, os resultados são recuperados por meio do objeto SearchResult. O número de documentos que correspondem à consulta e suas contagens de ocorrência são mostrados. Dados detalhados para cada documento são extraídos, incluindo o caminho do arquivo e as ocorrências do termo. Ao iterar pelos campos encontrados em cada documento, você pode identificar campos específicos com correspondências e analisar termos e frases junto com suas frequências. O código abaixo mostra como acessar os resultados da pesquisa de índice com Java, oferecendo uma visão organizada das informações recuperadas.
Código para trabalhar com resultados de pesquisa usando 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]); | |
} | |
} | |
} | |
} | |
} | |
} |
Gerenciar e analisar adequadamente os resultados da pesquisa é essencial para extrair todo o potencial dos dados indexados. Esse processo vai além da mera recuperação de documentos; ele inclui analisar ocorrências de termos, identificar correspondências em campos específicos e examinar padrões de frases. O método descrito aqui permite que você examine os resultados de forma completa e organizada, desbloqueando insights de dados mais profundos. Além disso, a compatibilidade entre plataformas da biblioteca garante integração suave entre diferentes sistemas e ambientes, aumentando sua flexibilidade para tarefas relacionadas à pesquisa. Ao dominar essa técnica, você será capaz de manipular resultados de pesquisa em Java de forma eficiente e aplicá-los a uma ampla variedade de casos de uso, desde análise de dados até recuperação de documentos em tempo real.
Anteriormente, fornecemos um guia detalhado sobre como criar relatórios de pesquisa usando Java. Para seguir o processo completo passo a passo, certifique-se de ler nosso artigo detalhado sobre como criar relatório de pesquisa usando Java.