Realce de Resultados de Busca Java – Indexação Síncrona e Assíncrona
Aumente suas aplicações Java usando realce de resultados de busca Java com a poderosa biblioteca GroupDocs.Search. Seja você lidando com alguns arquivos ou um repositório massivo, dominar tanto a indexação síncrona quanto a assíncrona permite entregar resultados rápidos e precisos sem bloquear as threads da sua aplicação.
Respostas Rápidas
- O que significa “highlight search results Java”? Refere‑se à renderização dos termos correspondentes nos resultados de busca com indicações visuais (por exemplo, tags HTML
<mark>) para que os usuários vejam onde a consulta aparece em cada documento. - Quando devo usar indexação síncrona? Para conjuntos de dados pequenos a médios onde a disponibilidade imediata dos documentos recém‑adicionados é necessária.
- Quando a indexação assíncrona é preferível? Ao processar grandes coleções de documentos ou ao executar em uma thread de UI onde é preciso manter a aplicação responsiva.
- Preciso de uma licença? Um teste gratuito funciona para desenvolvimento; uma licença completa desbloqueia recursos avançados e remove limites de uso.
- Qual versão do Java é suportada? Java 8 ou posterior.
O que é “highlight search results Java”?
Realçar resultados de busca em Java significa pegar as correspondências brutas retornadas pelo GroupDocs.Search e envolver os termos correspondentes em HTML (ou outra marcação) para que se destaquem quando exibidos em uma UI ou página web. Isso melhora a experiência do usuário ao mostrar instantaneamente o contexto de cada ocorrência.
Por que usar GroupDocs.Search para Java?
GroupDocs.Search fornece um mecanismo de alto desempenho, independente de idioma, que suporta:
- Indexação e busca em tempo real
- Processamento assíncrono para cargas de trabalho grandes
- Realce de resultados embutido
- Suporte a múltiplos idiomas e analisadores personalizados
Essas capacidades tornam a ferramenta ideal para sistemas de gerenciamento de conteúdo, catálogos de e‑commerce e repositórios corporativos de documentos.
Pré‑requisitos
Antes de começar, certifique‑se de que você tem:
- Java Development Kit (JDK 8 ou mais recente) instalado.
- Um IDE como IntelliJ IDEA ou Eclipse.
- Uma pasta contendo os documentos que você deseja indexar.
- Maven para gerenciamento de dependências (ou você pode baixar o JAR manualmente).
Bibliotecas e Dependências Necessárias
Adicione GroupDocs.Search ao seu projeto Maven:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
Para downloads diretos, obtenha a versão mais recente em GroupDocs.Search for Java releases.
Configuração do Ambiente
- Verifique se seu JAVA_HOME aponta para um JDK compatível.
- Crie um projeto em seu IDE e adicione a configuração Maven acima.
- Prepare um diretório (por exemplo,
documents/) com arquivos de texto, PDF ou Word de exemplo.
Como configurar o GroupDocs.Search para Java
- Instalar a Biblioteca – Use o trecho Maven acima ou baixe o JAR em GroupDocs.
- Obter uma Licença – Comece com uma licença de avaliação, depois faça upgrade quando passar para produção.
- Inicializar o Índice – O trecho a seguir mostra como criar (ou abrir) uma pasta de índice:
import com.groupdocs.search.Index;
// Create an index in the specified folder
Index index = new Index("path/to/index/folder");
Como realçar resultados de busca Java – Indexação Síncrona
A indexação síncrona processa documentos imediatamente, tornando os arquivos recém‑adicionados pesquisáveis de imediato.
Etapa 1: Criar o índice e anexar tratamento de erros
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
import java.nio.file.Paths;
public class SynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/SynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
Etapa 2: Adicionar documentos e executar uma busca
// Add documents
index.add(documentsFolder);
// Perform a search
String query = "tincidunt";
SearchResult result = index.search(query);
Etapa 3: Processar resultados e highlight search results Java
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());
}
// Highlight results
if (result.getDocumentCount() > 0) {
FoundDocument document = result.getFoundDocument(0);
String path = YOUR_OUTPUT_DIRECTORY + "/Highlighted.html";
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, path);
DocumentHighlighter highlighter = new DocumentHighlighter(outputAdapter);
index.highlight(document, highlighter);
}
}
}
O DocumentHighlighter envolve automaticamente os termos correspondentes com tags <mark> (ou qualquer formato que você configure), fornecendo highlighted search results prontos para exibição.
Como realçar resultados de busca Java – Indexação Assíncrona
Ao lidar com milhares de arquivos, bloquear a thread principal é indesejável. A indexação assíncrona permite que o mecanismo trabalhe em segundo plano.
Etapa 1: Configurar o índice com ouvintes de eventos
import com.groupdocs.search.*;
import com.groupdocs.search.events.*;
public class AsynchronousIndexingFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AsynchronousIndexing";
String documentsFolder = YOUR_DOCUMENT_DIRECTORY; // Replace with actual directory path
Index index = new Index(indexFolder);
// Handle errors and status changes
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
@Override
public void invoke(Object sender, IndexErrorEventArgs args) {
System.out.println(args.getMessage());
}
});
index.getEvents().StatusChanged.add(new EventHandler<BaseIndexEventArgs>() {
@Override
public void invoke(Object sender, BaseIndexEventArgs args) {
if (args.getStatus() != IndexStatus.Ready || args.getStatus() == IndexStatus.Failed) {
System.out.println("Indexing completed.");
}
}
});
Etapa 2: Habilitar modo assíncrono e iniciar a indexação
// Set up async indexing options
IndexingOptions options = new IndexingOptions();
options.setAsync(true);
// Add documents asynchronously
index.add(documentsFolder, options);
}
}
Enquanto o índice está sendo construído, sua aplicação pode continuar atendendo a outras solicitações. Quando o evento StatusChanged reportar Ready, você pode executar buscas com segurança e obter highlighted search results Java.
Como index documents java – Dicas Práticas
- Batch size: Para coleções enormes, divida a pasta em lotes menores para evitar picos de memória.
- File filters: Use
IndexingOptions.setFileExtensionspara incluir apenas os formatos necessários (por exemplo,.pdf,.docx). - Re‑indexing: Quando os documentos mudarem, chame
index.update(documentPath)em vez de reconstruir todo o índice.
Considerações de Desempenho
- Memory: Fique de olho no uso de heap; aumente
-Xmxse processar muitos arquivos grandes. - CPU: A indexação assíncrona distribui a carga de trabalho, mas ainda consome CPU — monitore com JVisualVM.
- Result Highlighting: O realce adiciona uma pequena sobrecarga de processamento; faça cache do HTML gerado se precisar exibir resultados repetidamente.
Perguntas Frequentes
Q: Posso combinar indexação síncrona e assíncrona na mesma aplicação?
A: Sim. Use indexação síncrona para conjuntos pequenos, frequentemente atualizados, e indexação assíncrona para importações em massa ou jobs em segundo plano.
Q: Como personalizo o estilo de realce?
A: Forneça uma implementação personalizada de DocumentHighlighter que escreva as tags HTML, CSS ou XML desejadas ao redor dos termos correspondentes.
Q: Quais tipos de arquivo o GroupDocs.Search suporta nativamente?
A: Texto, PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, HTML e muitos outros via seus analisadores integrados.
Q: É possível buscar em múltiplos idiomas simultaneamente?
A: Absolutamente. O GroupDocs.Search inclui analisadores multilíngues; basta configurar o Analyzer apropriado ao criar o índice.
Q: Como protejo a pasta de índice?
A: Armazene o índice em um diretório protegido, defina permissões adequadas no sistema de arquivos e considere criptografar o índice com os recursos de segurança da biblioteca.
Última Atualização: 2026-02-08
Testado com: GroupDocs.Search 25.4 for Java
Autor: GroupDocs