Pesquisar e Destacar Texto em Documentos Usando GroupDocs.Search para Java

Na era digital atual, search and highlight text em coleções massivas de documentos é uma necessidade comum. Seja construindo uma ferramenta de revisão jurídica, um portal de pesquisa acadêmica ou um painel de suporte ao cliente, ser capaz de localizar e enfatizar instantaneamente termos‑chave melhora drasticamente a usabilidade. Neste guia abrangente, você descobrirá como implementar search and highlight text com GroupDocs.Search para Java — cobrindo tanto o destaque de documentos completos quanto o destaque em nível de fragmento para contexto focado.

Respostas Rápidas

  • O que significa “search and highlight text”? Refere‑se a localizar termos de consulta em um documento e enfatizá‑los visualmente (por exemplo, com cor de fundo).
  • Qual biblioteca fornece essa capacidade? GroupDocs.Search for Java.
  • Preciso de uma licença? Um teste gratuito funciona para avaliação; uma licença completa é necessária para produção.
  • Posso personalizar as cores de destaque? Sim — qualquer cor RGB pode ser definida via HighlightOptions.
  • O destaque de fragmentos é suportado? Absolutamente; você pode definir termos antes/depois da correspondência para criar trechos concisos.

O Que É Search and Highlight Text?

Search and highlight text é o processo de varrer um índice de documentos para uma consulta dada, recuperar documentos correspondentes e, em seguida, marcar cada ocorrência do termo de consulta na saída do documento (HTML, PDF, etc.). Essa indicação visual ajuda os usuários finais a identificar informações relevantes instantaneamente.

Por Que Usar GroupDocs.Search para Java?

  • Indexação de alto desempenho com compressão configurável.
  • API de destaque avançada que funciona em documentos inteiros e em fragmentos personalizados.
  • Suporte a múltiplos formatos (DOCX, PDF, PPTX, TXT e mais).
  • Integração fácil com Maven e API clara centrada em Java.

Pré‑requisitos

  • Java Development Kit (JDK) 8 ou superior.
  • Maven para gerenciamento de dependências.
  • Uma IDE como IntelliJ IDEA ou Eclipse.
  • Familiaridade básica com a sintaxe Java.

Configurando GroupDocs.Search para Java

Adicione o repositório GroupDocs e a dependência ao seu pom.xml:

<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>

Você também pode baixar o JAR mais recente diretamente do site oficial: GroupDocs.Search for Java releases.

Aquisição de Licença

Comece com um teste gratuito ou obtenha uma licença temporária para avaliação. Para implantações em produção, adquira uma licença completa para desbloquear todos os recursos.

Guia de Implementação

A implementação está dividida em duas seções práticas: destaque em documentos inteiros e destaque em fragmentos. Ambas as seções incluem os passos essenciais para como destacar documentos Java usando GroupDocs.Search.

Configurando as Configurações do Índice

Antes de indexar, configure o armazenamento para usar alta compressão — isso reduz o uso de disco enquanto preserva a velocidade de pesquisa.

IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

Destaque em Documentos Inteiros

Crie uma pasta de índice e adicione todos os arquivos de origem que deseja pesquisar.

String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");

Etapa 2: Executar a Pesquisa e Aplicar o Destaque

Pesquise o termo (por exemplo, ipsum) e gere um arquivo HTML com as correspondências destacadas.

SearchResult result = index.search("ipsum");

if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0);
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "/path/to/your/output/directory/Highlighted.html");
    
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    HighlightOptions options = new HighlightOptions();
    options.setHighlightColor(new Color(150, 255, 150)); // Custom green shade
    options.setUseInlineStyles(false); // Prefer CSS for styling
    
    index.highlight(document, highlighter, options);
}

Opções principais explicadas

  • Compression – alta compressão economiza armazenamento.
  • HighlightColor – defina qualquer valor RGB para combinar com a paleta da sua UI.
  • UseInlineStylesfalse gera HTML limpo que pode ser estilizado globalmente com CSS.

Destaque em Fragmentos

Etapa 1: Indexar e Pesquisar (mesmo que acima)

String indexFolder = "/path/to/your/document/directory/HighlightingInFragments";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");

SearchResult result = index.search("ipsum");

Etapa 2: Definir o Contexto do Fragmento e Destacar

Especifique quantos termos antes e depois da correspondência devem aparecer em cada fragmento.

HighlightOptions options = new HighlightOptions();
options.setTermsBefore(5); // Include 5 terms before the match
options.setTermsAfter(5);   // Include 5 terms after the match
options.setHighlightColor(new Color(127, 200, 255)); // Custom blue shade
options.setUseInlineStyles(true); // Use inline styles for emphasis

FoundDocument document = result.getFoundDocument(0);
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.Html);

index.highlight(document, highlighter, options);

Etapa 3: Recuperar e Gravar os Fragmentos Destacados

Colete os fragmentos gerados e grave‑os em um arquivo HTML.

StringBuilder stringBuilder = new StringBuilder();
FragmentContainer[] fragmentContainers = highlighter.getResult();

for (FragmentContainer container : fragmentContainers) {
    String[] fragments = container.getFragments();
    
    if (fragments.length > 0) {
        stringBuilder.append("\n<br>").append(container.getFieldName()).append("<br>\n");
        
        for (String fragment : fragments) {
            stringBuilder.append(fragment).append("\n");
        }
    }
}

try {
    Files.write(Paths.get("/path/to/your/output/directory/Fragments.html"), stringBuilder.toString().getBytes());
} catch (IOException ex) {
    // Handle exceptions
}

Aplicações Práticas

  1. Revisão de Documentos Legais – destaque instantaneamente estatutos, cláusulas ou referências de casos.
  2. Pesquisa Acadêmica – descubra terminologia chave em dezenas de PDFs e arquivos Word.
  3. Suporte ao Cliente – identifique números de pedido ou códigos de erro dentro do histórico de tickets.

Considerações de Desempenho

  • Index Size – alta compressão (Compression.High) reduz a pegada de disco.
  • Fragment Context – valores maiores de termsBefore/After aumentam a precisão, mas podem afetar a velocidade.
  • Memory Management – monitore o heap da JVM ao indexar grandes corpora; considere indexação incremental para conjuntos muito grandes.

Problemas Comuns e Soluções

  • Indexing Errors – verifique os caminhos dos arquivos e assegure que a aplicação tem permissões de leitura/escrita.
  • No Highlights Appear – confirme que UseInlineStyles corresponde ao seu formato de saída (HTML vs. PDF).
  • Color Not Applied – certifique-se de que os valores RGB estejam dentro do intervalo 0‑255 e que o visualizador HTML suporte o estilo.

Perguntas Frequentes

Q: Quais são os benefícios de usar GroupDocs.Search para Java?
A: Ele oferece indexação rápida e escalável, destaque personalizável e suporte a muitos formatos de documentos.

Q: Como posso integrar GroupDocs.Search com uma API REST?
A: Exponha os métodos de pesquisa e destaque via controladores Spring Boot, retornando payloads HTML ou JSON.

Q: A biblioteca lida com arquivos protegidos por senha?
A: Sim — forneça a senha ao adicionar o documento ao índice.

Q: Posso personalizar a marcação de destaque além da cor?
A: Absolutamente; você pode injetar classes CSS via HighlightOptions ou modificar o HTML após a geração.

Q: Qual versão foi testada para este guia?
A: O código foi validado contra GroupDocs.Search 25.4.


Última Atualização: 2025-12-26
Testado com: GroupDocs.Search 25.4
Autor: GroupDocs