Adicionar documentos ao índice para pesquisa sem distinção entre maiúsculas e minúsculas em Java

Quando você precisa de case insensitive search java que encontre informações de forma confiável independentemente de como os usuários as digitam, a chave é adicionar documentos a um índice enquanto normaliza o texto. Neste tutorial, percorremos a configuração do GroupDocs.Search para Java para que cada documento indexado seja automaticamente convertido para minúsculas (ou transformado de outra forma) durante a indexação, garantindo resultados sem distinção entre maiúsculas e minúsculas sem lógica adicional no momento da consulta.

Respostas rápidas

  • O que significa “add documents to index”? Significa carregar arquivos de origem em uma estrutura de dados pesquisável para que possam ser consultados posteriormente.
  • Por que usar substituição de caracteres? Ela normaliza cada caractere — tipicamente para minúsculas — para que as pesquisas ignorem diferenças de maiúsculas/minúsculas automaticamente.
  • Preciso de uma licença? Um teste gratuito funciona para desenvolvimento; uma licença completa é necessária para implantações em produção.
  • Qual versão do Java é necessária? Java 8 ou mais recente; a biblioteca tem como alvo Java 11+ para desempenho ideal.
  • Posso mudar para pesquisa sensível a maiúsculas/minúsculas quando necessário? Sim — as opções de pesquisa permitem alternar a sensibilidade a maiúsculas/minúsculas por consulta.

O que é “add documents to index” no GroupDocs.Search?

Carregue seus arquivos de origem (PDF, DOCX, TXT, etc.) em um índice pesquisável para que o mecanismo possa recuperá‑los rapidamente. Adicionar documentos a um índice analisa cada arquivo, extrai o texto puro e o armazena em uma estrutura de dados otimizada que permite buscas rápidas.

Por que habilitar a substituição de caracteres durante a indexação?

A substituição de caracteres converte cada caractere para um equivalente predefinido — mais comumente para minúsculas — enquanto o índice é construído. Isso garante que variações de capitalização, diacríticos ou símbolos específicos de localidade não afetem os resultados da pesquisa. Ao normalizar o texto no momento da indexação, o mecanismo pode comparar consultas com um conjunto consistente de tokens, proporcionando comportamento rápido e confiável sem distinção entre maiúsculas e minúsculas sem processamento adicional em cada pesquisa.

Pré‑requisitos

  • GroupDocs.Search for Java versão 25.4 ou mais recente (a biblioteca suporta mais de 30 formatos de arquivo e pode indexar documentos com centenas de páginas sem carregar o arquivo inteiro na memória).
  • Java Development Kit (JDK) 8 ou posterior instalado.
  • Familiaridade básica com Maven (ou capacidade de adicionar JARs manualmente).

Configurando o GroupDocs.Search para Java

Configuração Maven

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>

Download direto

Se preferir não usar Maven, obtenha o JAR mais recente no site oficial: GroupDocs.Search for Java releases.

Aquisição de licença

  • Free Trial – baixe uma licença de teste para começar a experimentar.
  • Temporary License – solicite uma licença de teste estendida no portal GroupDocs.
  • Full License – adquira uma licença de produção quando estiver pronto para entrar em operação.

Inicialização básica (Criar o índice)

O trecho a seguir cria uma pasta de índice e habilita substituições de caracteres:

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);
Index index = new Index(indexFolder, settings);

Guia de implementação

Habilitar substituição de caracteres nas configurações do índice

Ativar este recurso indica ao mecanismo que ele deve substituir caracteres durante a indexação, que é a etapa central para o comportamento sem distinção entre maiúsculas e minúsculas.

Etapa 1: Configurar IndexSettings

IndexSettings é o objeto de configuração que controla como o índice armazena e processa texto. Definindo useCharacterReplacements como true, você ativa a conversão automática para minúsculas (ou qualquer mapeamento personalizado que fornecer).

import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;

String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/CharacterReplacementDuringIndexing";

// Create an instance of IndexSettings and enable character replacement.
IndexSettings settings = new IndexSettings();
settings.setUseCharacterReplacements(true);

// Initialize the index with these settings.
Index index = new Index(indexFolder, settings);

Configurar substituições de caracteres

Mapeie cada caractere para sua contraparte em minúsculas (ou qualquer mapeamento personalizado que precisar).

Etapa 2: Definir e adicionar pares de substituição

O dicionário de substituição contém pares como 'A' → 'a', 'É' → 'e', etc. Adicionar esses pares antes da indexação garante que cada token seja normalizado.

import com.groupdocs.search.dictionaries.CharacterReplacementPair;

// Access existing replacements and clear them.
index.getDictionaries().getCharacterReplacements().clear();

// Create an array for new replacements.
CharacterReplacementPair[] characterReplacements = new CharacterReplacementPair[Character.MAX_VALUE + 1];
for (int i = 0; i < characterReplacements.length; i++) {
    char originalChar = (char) i;
    char replacementChar = Character.toLowerCase(originalChar);
    characterReplacements[i] = new CharacterReplacementPair(originalChar, replacementChar);
}

// Add these replacements to the index's dictionary.
index.getDictionaries().getCharacterReplacements().addRange(characterReplacements);

Indexando documentos

Agora que o índice está pronto, você pode add documents to index a partir de qualquer pasta.

Etapa 3: Adicionar documentos para indexação

O GroupDocs.Search varre o diretório de destino, extrai texto de cada tipo de arquivo suportado, aplica o mapa de substituição e grava os tokens no armazenamento do índice.

import com.groupdocs.search.Index;

String documentFolder = "YOUR_DOCUMENT_DIRECTORY";

// Initialize the index and add documents.
Index index = new Index(indexFolder, settings);
index.add(documentFolder);

Executar pesquisa sensível a maiúsculas/minúsculas (Opcional)

Etapa 4: Executar pesquisas sensíveis a maiúsculas/minúsculas

SearchOptions configura o comportamento da consulta, como alternar a sensibilidade a maiúsculas/minúsculas, permitindo controle detalhado sobre como as pesquisas são realizadas.
SearchOptions.setUseCaseSensitiveSearch(true) força o mecanismo a tratar caracteres maiúsculos e minúsculos como distintos durante uma consulta específica, sobrescrevendo o comportamento padrão sem distinção entre maiúsculas e minúsculas.

import com.groupdocs.search.Index;
import com.groupdocs.search.SearchOptions;
import com.groupdocs.search.results.SearchResult;

String query = "Promotion";
SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

// Perform the search.
Index index = new Index(indexFolder, settings);
SearchResult result = index.search(query, options);

Aplicações práticas

  1. Campanhas de marketing – Normalizar nomes de produtos para que as equipes de vendas possam localizar ativos sem se preocupar com maiúsculas/minúsculas.
  2. Suporte ao cliente – Alimentar caixas de pesquisa de help‑desk que retornam o artigo correto, independentemente de o usuário digitar “login” ou “Login”.
  3. Catálogos de e‑commerce – Garantir que os compradores encontrem itens independentemente de como digitam os títulos dos produtos, melhorando as taxas de conversão.

Considerações de desempenho

  • Organizar arquivos de origem – Uma hierarquia de pastas bem organizada reduz o tempo gasto na varredura durante a etapa add documents to index.
  • Monitorar memória – Indexar grandes corpora pode consumir RAM significativa; processar arquivos em lotes de 500 – 1 000 itens mantém o uso do heap sob controle.
  • Indexação assíncrona – Quando suportada, execute a indexação em uma thread em segundo plano para manter a UI responsiva e evitar bloquear operações do usuário.

Problemas comuns e solução de problemas

SintomaCausa provávelCorreção
Nenhum resultado retornado para um termo conhecidoSubstituições de caracteres não habilitadasVerifique settings.setUseCharacterReplacements(true) e que o mapa de substituição contém os caracteres necessários.
Erro de falta de memória durante a indexaçãoIndexação de muitos arquivos grandes de uma vezIndexe em lotes menores ou aumente o heap da JVM (-Xmx4g).
A pesquisa retorna resultados sensíveis a maiúsculas/minúsculas inesperadamenteSearchOptions.setUseCaseSensitiveSearch(true) foi definidoRemova ou defina como false para o comportamento padrão sem distinção entre maiúsculas e minúsculas.
Tempo de carregamento do índice excede o esperadoLayout de pastas ineficiente ou SSD não utilizadoReorganize arquivos, remova documentos não usados e armazene o índice em um SSD rápido.
Caracteres especiais são ignoradosMapa de substituição sem entradas UnicodeAdicione mapeamentos para caracteres como “é”, “ß”, “ø” aos seus equivalentes desejados.

Perguntas frequentes

Q: Como lidar com caracteres especiais (por exemplo, “é”, “ß”) durante a indexação?
A: Inclua esses caracteres no seu mapa de substituição, mapeando-os para seus equivalentes ASCII ou mantendo-os inalterados conforme os requisitos de pesquisa.

Q: Posso limitar a substituição de caracteres a um idioma específico?
A: Sim. Crie um array de substituição personalizado que contenha apenas os caracteres do idioma alvo antes de adicioná‑lo ao dicionário.

Q: O que fazer se o índice demorar muito para carregar?
A: Otimize a estrutura de pastas, remova arquivos desnecessários e armazene o índice em um SSD de alta velocidade. A indexação incremental também reduz a sobrecarga de carregamento.

Q: É possível reverter as substituições de caracteres após a indexação?
A: Não. As substituições são incorporadas aos dados indexados; você deve reconstruir o índice com novas configurações para alterá‑las.

Q: Onde posso encontrar documentação de API mais detalhada?
A: A documentação oficial e a referência da API fornecem detalhes completos (veja os Recursos abaixo).

Recursos


Última atualização: 2026-07-31
Testado com: GroupDocs.Search 25.4 for Java
Autor: GroupDocs


Tutoriais relacionados