A pesquisa de texto completo é uma maneira de pesquisar um texto/consulta em uma coleção de documentos. Essa abordagem encontra rapidamente todas as instâncias de um termo/frase e funciona usando índices de texto. Neste artigo, aprenderemos como pesquisar texto completo programaticamente em documentos usando Java.
Depois disso, você pode implementar várias técnicas de pesquisa e criar sua solução de pesquisa para documentos de processamento de texto, planilhas, apresentações, arquivos HTML, arquivos PDF, eBooks, mensagens de e-mail, arquivos ZIP e muitos outros formatos de documentos.
Os seguintes tópicos são abordados abaixo:
- API Java para pesquisa de texto completo
- Pesquisa de texto completo
- Executar pesquisa em Java
- Destacar resultados da pesquisa
API Java para pesquisa de texto completo
GroupDocs.Search fornece uma API Java de pesquisa de texto completo que pode ser integrada a qualquer aplicativo sem qualquer ferramenta de terceiros e dependência de software. Ele permite que você pesquise em uma grande lista de formatos de documentos. Algumas das técnicas de pesquisa que podem ser realizadas usando a API são as seguintes:
- Pesquisa sensível a maiúsculas e minúsculas
- Pesquisa de expressão regular
- Pesquisa Facetada
- Pesquisa difusa
- Pesquisa homófona
- Pesquisa de sinônimos
Baixe ou configure
Você pode baixar o arquivo JAR da seção de downloads, ou apenas obter o repositório mais recente e as configurações de dependência para o pom.xml de seus aplicativos Java baseados em 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.3</version>
</dependency>
Pesquisa de texto completo usando Java
Há duas etapas para realizar a pesquisa em arquivos armazenados em uma pasta.
- Indexação
- Realizar pesquisa
Indexar arquivos usando Java
Um índice possui texto digitalizado de todos os documentos. Portanto, quando você for realizar uma operação de pesquisa, apenas o índice será referenciado, em vez do texto dos documentos originais. Para possibilitar a pesquisa instantânea em milhares de documentos com formatos de arquivo iguais ou diferentes, você precisa criar um índice e adicionar esses documentos a ele. Quando os documentos são indexados, o índice está pronto para lidar com as consultas de pesquisa.
As duas linhas simples a seguir criam um índice e também adicionam a pasta de documentos ao índice.
Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");
Realizar pesquisa em Java
Depois de indexar vários documentos do mesmo ou de formatos diferentes como (Word, PDF, Excel e HTML), podemos avançar para processar uma consulta de pesquisa específica (termo de pesquisa “Draw”) sobre eles. A seguir estão as etapas de como realizar pesquisa de texto em vários documentos em uma pasta usando Java:
- Especifique a pasta de origem dos documentos e a pasta de índice.
- Crie Index usando a pasta index.
- Adicione a pasta de origem ao arquivo index.
- Prepare a string de consulta.
- Realize uma pesquisa usando o método search da classe Index.
- Percorra cada resultado da pesquisa para as propriedades de cada documento.
O código-fonte a seguir realiza pesquisa de texto em Java em todos os documentos da pasta fornecida.
// Pesquise o texto especificado em vários documentos PDF, Word, Excel, HTML em uma pasta usando Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");
// Pesquisando no índice para o texto especificado
SearchResult result = index.search("Draw");
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
System.out.println("Occurrence : " + document.getOccurrenceCount());
}
Obteremos o caminho do documento e o número de ocorrências dos termos de pesquisa em todos os documentos com essa pasta especificada. Aqui está a captura de tela para visualização.
Realçar resultados de pesquisa de texto em Java
Vamos agora realizar a mesma pesquisa de texto completo e também destacar todas as ocorrências que correspondem à sua consulta.
As etapas a seguir mostram como destacar os resultados da pesquisa de texto:
- Crie Index e adicione a pasta de documentos ao índice.
- Prepare a string de consulta.
- Pesquise a pasta de documentos usando o método search.
- Ao percorrer os resultados, crie o marcador usando o HtmlHighlighter.
- Use o método de destaque para destacar os resultados da pesquisa.
O código a seguir gera a saída HTML com resultados de pesquisa destacados usando Java.
// Realce os resultados da pesquisa de texto completo de vários documentos em uma pasta em Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder
String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index
for (int i = 0; i < result.getDocumentCount(); i++)
{
FoundDocument document = result.getFoundDocument(i);
String path = "path/Highlighted-"+ i +".html";
OutputAdapter outputAdapter = new FileOutputAdapter(path);
HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}
Como saída, obteremos vários arquivos HTML. Cada arquivo mostrará o conteúdo de um documento separado (por exemplo, excel.xlsx, source.docx, target.docx) com termos/palavras de pesquisa destacadas. Abaixo está a saída HTML destacada de um arquivo DOCX, arquivo TXT e arquivo PDF obtido usando o código acima.
Obtenha uma licença de API gratuita
Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.
Conclusão
Neste artigo, aprendemos a pesquisar texto em vários documentos de uma pasta em Java. Além disso, discutimos como destacar programaticamente o texto dos resultados da pesquisa no formato HTML para arquivos MS Word, arquivos TXT e arquivos PDF usando GroupDocs.Search for Java.
Você pode aprender mais sobre a API usando documentação. Muitos outros exemplos estão disponíveis em GitHub. Para dúvidas, entre em contato conosco através do fórum.