Como Pesquisar com Sinônimos em Java Usando GroupDocs.Search
Se você deseja que seus usuários encontrem o conteúdo correto mesmo quando digitam palavras diferentes, search with synonyms é a resposta. Neste guia, percorreremos tudo o que você precisa saber — criar um dicionário de sinônimos, importá‑lo/exportá‑lo, gerenciar grupos de sinônimos e, finalmente, executar uma pesquisa que expande automaticamente as consultas usando esses sinônimos. Seja você quem está construindo um CMS, um catálogo de e‑commerce ou um repositório de documentos legais, adicionar suporte a sinônimos pode aumentar drasticamente a relevância e as taxas de conversão.
Quick Answers
- Qual é a etapa principal para adicionar sinônimos? Inicialize um
Indexe use a APISynonymDictionary. - Posso importar um dicionário de sinônimos? Sim – use
importDictionary(path)para carregar um arquivo pré‑construído. - Como habilito a pesquisa com sinônimos? Defina
SearchOptions.setUseSynonymSearch(true). - É possível gerenciar grupos de sinônimos? Absolutamente – você pode limpar, adicionar ou recuperar grupos via a API do dicionário.
- O que devo considerar ao otimizar o índice de pesquisa? Remova regularmente entradas não usadas e ajuste o heap da JVM para grandes conjuntos de dados.
O que é Search with Synonyms?
“Search with synonyms” significa que o mecanismo trata um conjunto de palavras ou frases como intercambiáveis. Quando um usuário digita “better”, o mecanismo também procura por “improve”, “enhance”, ou qualquer outro termo que você definiu no mesmo grupo de sinônimos, entregando resultados mais ricos sem alterar a consulta do usuário.
Por que habilitar o suporte a sinônimos no GroupDocs.Search?
- Melhor experiência do usuário: Os visitantes encontram documentos relevantes mesmo que usem terminologia diferente.
- Taxas de conversão mais altas: Plataformas de e‑commerce capturam mais vendas ao corresponder termos de produtos variados.
- Manutenção simplificada: Um dicionário central pode atender a múltiplas aplicações, tornando as atualizações indolores.
Prerequisites
- GroupDocs.Search for Java versão 25.4 ou mais recente.
- Uma IDE Java (IntelliJ IDEA, Eclipse, etc.) com suporte ao Maven.
- Conhecimento básico de Java e familiaridade com a estrutura de projetos Maven.
Required Libraries and Versions
- GroupDocs.Search for Java versão 25.4 ou superior.
Environment Setup
- IDE de sua escolha (IntelliJ IDEA, Eclipse, etc.).
- Maven para gerenciamento de dependências.
Knowledge Requirements
- Programação orientada a objetos em Java.
- Operações básicas de I/O de arquivos.
Setting Up GroupDocs.Search for Java
Installation Information
Add the repository and dependency to your 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 – você também pode baixar o JAR mais recente em GroupDocs.Search for Java releases.
License Acquisition
- Teste gratuito: Teste recursos principais sem licença.
- Licença temporária: Amplie as capacidades do teste durante a avaliação.
- Compra: Necessária para uso em produção e conjunto completo de recursos.
Basic Initialization and Setup
Create an Index instance, then add documents to be searchable:
import com.groupdocs.search.*;
String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Index";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";
// Creating an index in the specified folder
Index index = new Index(indexFolder);
// Adding documents from a specific folder to the index
index.add(documentsFolder);
Como adicionar sinônimos ao seu índice de pesquisa
Criar um índice é a base. A seguir, percorremos as etapas essenciais, cada uma acompanhada do código exato que você precisa.
Recurso 1: Criando e indexando um índice
// Create an index in the specified folder
Index index = new Index(indexFolder);
// Add documents from the given folder to the index
index.add(documentsFolder);
Recurso 2: Recuperando sinônimos para uma palavra
String[] synonyms = index.getDictionaries().getSynonymDictionary().getSynonyms("make");
Recurso 3: Recuperando grupos de sinônimos
String[][] synonymGroups = index.getDictionaries().getSynonymDictionary().getSynonymGroups("make");
Recurso 4: Gerenciando entradas do dicionário de sinônimos
if (index.getDictionaries().getSynonymDictionary().getCount() > 0) {
index.getDictionaries().getSynonymDictionary().clear();
}
String[][] newSynonymGroups = new String[][]{
new String[] { "achieve", "accomplish", "attain", "reach" },
new String[] { "accept", "take", "have" },
new String[] { "improve", "better" }
};
index.getDictionaries().getSynonymDictionary().addRange(newSynonymGroups);
Recurso 5: Exportando sinônimos para um arquivo
String exportFilePath = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.getDictionaries().getSynonymDictionary().exportDictionary(exportFilePath);
Recurso 6: Importando sinônimos de um arquivo
index.getDictionaries().getSynonymDictionary().importDictionary(exportFilePath);
Recurso 7: Executando pesquisa com suporte a sinônimos
String query = "better";
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true);
SearchResult result = index.search(query, options);
Como pesquisar com sinônimos
Ao habilitar setUseSynonymSearch(true), o mecanismo expande automaticamente a consulta usando o dicionário de sinônimos que você criou ou importou. Esta etapa é crucial para entregar resultados mais ricos sem mudar o comportamento de pesquisa do usuário.
Como importar o dicionário de sinônimos
Se você já possui um arquivo .dat preparado por outro ambiente, basta chamar importDictionary(path). Isso é ideal para sincronizar dicionários entre servidores de desenvolvimento, teste e produção.
Como gerenciar grupos de sinônimos
Grupos de sinônimos permitem tratar um conjunto de termos como uma única entidade lógica. Adicionar, limpar ou recuperar grupos é feito através da API SynonymDictionary, como mostrado nos trechos de código acima.
Como otimizar o índice de pesquisa
- Remova regularmente entradas não usadas: Use
clear()antes de atualizações em massa. - Ajuste o heap da JVM: Dicionários grandes podem exigir mais memória.
- Mantenha a biblioteca atualizada: Novas versões contêm melhorias de desempenho.
Practical Applications
- Sistemas de gerenciamento de conteúdo (CMS): Usuários encontram artigos mesmo quando usam terminologia alternativa.
- Plataformas de e‑commerce: As buscas de produtos tornam‑se tolerantes a sinônimos como “laptop” vs. “notebook”.
- Repositórios de documentos: Arquivos legais ou médicos se beneficiam de grupos de sinônimos específicos do domínio.
Performance Considerations
- Otimize o armazenamento do índice: Reconstrua periodicamente o índice para remover dados obsoletos.
- Gerencie o uso de memória: Monitore o consumo de heap ao carregar arquivos de sinônimos grandes.
- Atualizações regulares: Mantenha-se na versão mais recente do GroupDocs.Search para correções de bugs e ganhos de velocidade.
Common Issues and Solutions
| Problema | Causa provável | Solução |
|---|---|---|
| Nenhum resultado de sinônimo aparece | setUseSynonymSearch(true) não está definido ou dicionário não importado | Verifique se a opção está habilitada e se o arquivo de dicionário existe. |
| Erros de falta de memória durante a importação | Arquivo .dat muito grande excede o heap da JVM | Aumente o tamanho do heap -Xmx ou importe em lotes menores. |
| Entradas duplicadas nos resultados | O mesmo termo aparece em múltiplos grupos de sinônimos | Consolide grupos sobrepostos usando clear() e depois addRange(). |
Frequently Asked Questions
Q: Qual é o requisito mínimo de sistema para usar o GroupDocs.Search?
A: Qualquer OS moderno com um JDK compatível (Java 8 ou mais recente) é suficiente.
Q: Com que frequência devo atualizar meu dicionário de sinônimos?
A: Atualize-o sempre que surgirem novos termos — use clear() seguido de addRange() para uma atualização limpa.
Q: Posso usar o GroupDocs.Search sem comprar uma licença?
A: Um teste gratuito funciona para avaliação, mas uma licença é necessária para implantações em produção.
Q: Quais são as melhores práticas para indexar grandes conjuntos de dados?
A: Divida os dados em lotes lógicos, monitore o uso de heap e agende manutenção regular do índice.
Q: Não estou vendo correspondências de sinônimos esperadas — o que devo verificar?
A: Verifique se o dicionário foi importado corretamente, se setUseSynonymSearch(true) está ativo e se os termos estão presentes nos grupos de sinônimos.
Resources
- Documentation
- API Reference
- Download GroupDocs.Search for Java
- GitHub Repository
- Free Support Forum
- Temporary License Acquisition
Última atualização: 2026-03-04
Testado com: GroupDocs.Search 25.4 for Java
Autor: GroupDocs