Realçar texto java com GroupDocs.Search

Em aplicações empresariais modernas, highlight text java é essencial para transformar resultados de pesquisa brutos em insights imediatamente legíveis. Seja construindo um portal de revisão jurídica, um motor de pesquisa acadêmica ou um painel de suporte ao cliente, ser capaz de localizar e enfatizar visualmente os termos de consulta salva aos usuários incontáveis segundos de varredura manual. Este tutorial mostra como usar GroupDocs.Search for Java para search documents java, index documents java, e aplicar realce tanto em nível de documento completo quanto em fragmentos, tudo com apenas algumas linhas de código.

Respostas rápidas

  • O que significa “search and highlight text”? Significa localizar termos de consulta dentro de um documento e enfatizá‑los visualmente (por exemplo, com um fundo colorido).
  • 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 uso em produção.
  • Posso personalizar as cores de realce? Sim—qualquer cor RGB pode ser definida via HighlightOptions.
  • O realce de fragmentos é suportado? Absolutamente; você pode definir termos antes/depois da correspondência para criar trechos concisos.

Como realçar texto java em documentos

Para realçar texto java em documentos, primeiro crie um índice dos arquivos de origem usando configurações de compressão adequadas, depois execute uma consulta de pesquisa para localizar os termos desejados e, finalmente, exporte os resultados para HTML, PDF ou texto simples com cada correspondência envolvida em uma tag de realce. Esse processo de três etapas garante realce rápido e preciso em grandes coleções.

  1. Criar um índice com configurações de compressão que mantenham a pegada de armazenamento baixa.
  2. Executar uma pesquisa usando a string de consulta que você deseja realçar.
  3. Gerar saída (HTML, PDF ou texto simples) onde cada ocorrência do termo de consulta está envolvida em uma tag de realce.

O que é search and highlight text?

Search and highlight text é o processo de varrer uma coleção indexada para uma determinada consulta, recuperar documentos correspondentes e então marcar cada ocorrência do termo de consulta dentro da saída (HTML, PDF, etc.). Essa pista visual ajuda os usuários finais a identificar informações relevantes instantaneamente.

Por que usar GroupDocs.Search for Java?

GroupDocs.Search for Java oferece indexação de alto desempenho (até 50 GB por índice com Compression.High), realce avançado que funciona em documentos inteiros e fragmentos personalizados, e suporte a múltiplos formatos para mais de 30 tipos de arquivos—incluindo DOCX, PDF, PPTX e TXT. A biblioteca também oferece indexação incremental, permitindo adicionar novos arquivos sem reconstruir todo o índice, o que reduz o tempo de inatividade em até 80 % em implantações de grande escala.

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

Add the GroupDocs repository and dependency to your pom.xml:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-search</artifactId>
    <version>25.4</version>
</dependency>

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: realce em documentos inteiros e realce em fragmentos. Ambas as seções incluem os passos essenciais para como realçar documentos Java usando GroupDocs.Search.

Configurando as configurações de índice

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

IndexSettings é o objeto de configuração que controla como o índice é armazenado no disco. Defina Compression como Compression.High para habilitar essa otimização.
Compression especifica o nível de compressão de dados aplicado aos arquivos de índice, com Compression.High proporcionando a máxima redução de tamanho.

Realce em documentos inteiros

Etapa 1: criar e preencher o índice

Crie uma pasta de índice e adicione todos os arquivos de origem que deseja pesquisar. A classe Index representa o contêiner pesquisável.

Etapa 2: executar a pesquisa e aplicar o realce

Pesquise o termo (por exemplo, ipsum) e gere um arquivo HTML com as correspondências realçadas. Use HighlightOptions para especificar a cor de realce e se deve usar estilos embutidos.

HighlightOptions permite definir as cores de primeiro plano e fundo, bem como a classe CSS que será aplicada a cada termo realçado.

HtmlHighlighter gera saída HTML com termos realçados com base nas opções fornecidas.
SearchResult contém a lista de documentos correspondentes e as posições de cada termo encontrado.

Resposta direta: Carregue seu índice, chame search("ipsum") e passe o SearchResult resultante juntamente com uma instância configurada de HighlightOptions para o HtmlHighlighter. O realçador retorna HTML onde cada ocorrência de “ipsum” está envolvida em um <span> com a cor de fundo escolhida.

Opções chave explicadas

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

Realce em fragmentos

Etapa 1: indexar e pesquisar (mesmo que acima)

Os mesmos passos de indexação e pesquisa se aplicam; você reutiliza os objetos Index e SearchResult.

Etapa 2: definir o contexto do fragmento e realçar

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

FragmentOptions controla o número de palavras ao redor (termsBefore e termsAfter) que são incluídas em cada trecho, permitindo equilibrar o contexto com o comprimento do trecho.

Etapa 3: recuperar e escrever fragmentos realçados

Colete os fragmentos gerados e escreva-os em um arquivo HTML. Cada fragmento já está realçado de acordo com as HighlightOptions configuradas.

fragmentHighlighter é uma utilidade que cria trechos realçados a partir de um SearchResult usando as opções de fragmento e realce especificadas.

Resposta direta: Após obter o SearchResult, chame fragmentHighlighter.highlight(searchResult, fragmentOptions, highlightOptions). O método retorna uma lista de trechos HTML, cada um contendo o termo correspondido cercado pelo número configurado de palavras de contexto e realçado com a cor escolhida.

Aplicações práticas

  1. Revisão de documentos legais – realce instantaneamente estatutos, cláusulas ou referências de casos em milhares de contratos.
  2. Pesquisa acadêmica – descubra terminologia chave em dezenas de PDFs e arquivos Word, reduzindo o tempo de revisão de literatura em até 60 %.
  3. Suporte ao cliente – identifique números de pedido ou códigos de erro dentro de históricos de tickets, permitindo que os agentes resolvam problemas mais rapidamente.

Considerações de desempenho

  • Tamanho do índice – compressão alta (Compression.High) reduz a pegada de disco em até 70 % sem impacto perceptível de latência.
  • Contexto do fragmento – valores maiores de termsBefore/After aumentam a legibilidade do trecho, mas podem acrescentar 10–15 ms por consulta.
  • Gerenciamento de memória – monitore o heap da JVM ao indexar grandes corpora; considere indexação incremental para conjuntos de dados superiores a 2 GB para manter o uso de memória abaixo de 1 GB.

Problemas comuns e soluções

  • Erros de indexação – verifique os caminhos dos arquivos e assegure que a aplicação tenha permissões de leitura/escrita na pasta do índice.
  • Nenhum realce aparece – confirme que UseInlineStyles corresponde ao seu formato de saída (HTML vs. PDF).
  • Cor não aplicada – certifique‑se de que os valores RGB estejam dentro do intervalo 0‑255 e que o visualizador respeite o CSS embutido ou a classe CSS fornecida.

Perguntas frequentes

Q: Quais são os benefícios de usar GroupDocs.Search for Java?
A: Ele oferece indexação rápida e escalável, realce personalizável e suporte a mais de 30 formatos de documentos, processando arquivos de 500 páginas em menos de 2 segundos em um servidor típico.

Q: Como posso integrar o GroupDocs.Search com uma API REST?
A: Exponha os métodos de pesquisa e realce via controladores Spring Boot, retornando trechos HTML ou payloads JSON que contenham os fragmentos realçados.

Q: A biblioteca lida com arquivos protegidos por senha?
A: Sim—forneça a senha ao adicionar o documento ao índice via addDocument(filePath, password).

Q: Posso personalizar a marcação de realce além da cor?
A: Absolutamente; você pode atribuir uma classe CSS com options.setCssClass("myHighlight") e estilizar globalmente, ou modificar o HTML gerado após o realce.

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

Q: Como configuro highlight options java para usar uma classe CSS em vez de estilos embutidos?
A: Chame options.setUseInlineStyles(false) e defina uma regra CSS para a classe que você atribuir via options.setCssClass("myHighlight").

Q: Existe uma forma de realçar termos na saída PDF diretamente?
A: Sim—GroupDocs.Search funciona com entrada PDF, e o realçador gera HTML que pode ser incorporado em um visualizador PDF ou reconvertido para PDF usando GroupDocs.Conversion.

Última atualização: 2026-09-27
Testado com: GroupDocs.Search 25.4
Autor: GroupDocs

<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>
IndexSettings settings = new IndexSettings();
settings.setTextStorageSettings(new TextStorageSettings(Compression.High));
String indexFolder = "/path/to/your/document/directory/HighlightingInEntireDocument";
Index index = new Index(indexFolder, settings);
index.add("/path/to/your/documents");
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);
}
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");
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);
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
}

Tutoriais relacionados