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

  1. Instalar a Biblioteca – Use o trecho Maven acima ou baixe o JAR em GroupDocs.
  2. Obter uma Licença – Comece com uma licença de avaliação, depois faça upgrade quando passar para produção.
  3. 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.setFileExtensions para 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 -Xmx se 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