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
- Campanhas de marketing – Normalizar nomes de produtos para que as equipes de vendas possam localizar ativos sem se preocupar com maiúsculas/minúsculas.
- Suporte ao cliente – Alimentar caixas de pesquisa de help‑desk que retornam o artigo correto, independentemente de o usuário digitar “login” ou “Login”.
- 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
| Sintoma | Causa provável | Correção |
|---|---|---|
| Nenhum resultado retornado para um termo conhecido | Substituições de caracteres não habilitadas | Verifique 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ção | Indexação de muitos arquivos grandes de uma vez | Indexe em lotes menores ou aumente o heap da JVM (-Xmx4g). |
| A pesquisa retorna resultados sensíveis a maiúsculas/minúsculas inesperadamente | SearchOptions.setUseCaseSensitiveSearch(true) foi definido | Remova 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 esperado | Layout de pastas ineficiente ou SSD não utilizado | Reorganize arquivos, remova documentos não usados e armazene o índice em um SSD rápido. |
| Caracteres especiais são ignorados | Mapa de substituição sem entradas Unicode | Adicione 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
- Documentação
- Referência da API
- Baixar GroupDocs.Search
- Repositório no GitHub
- Fórum de suporte gratuito
- Informações sobre licença temporária
Última atualização: 2026-07-31
Testado com: GroupDocs.Search 25.4 for Java
Autor: GroupDocs