Como gerar formas em Java com GroupDocs.Search

Neste guia, você aprenderá como gerar formas em Java usando a API GroupDocs.Search. Ao criar um provedor personalizado de formas de palavras, você permite que seu mecanismo de busca ou de análise de texto reconheça todas as variações de um termo — seja “cat”, “cats”, “city” ou “citis”. Isso melhora o recall drasticamente enquanto mantém alta precisão.

Respostas rápidas

  • O que faz um provedor de formas de palavras? Ele gera formas alternativas (singular, plural, etc.) de uma palavra fornecida para que as pesquisas correspondam a todas as variantes.
  • Qual biblioteca é necessária? GroupDocs.Search para Java (versão 25.4 ou mais recente).
  • Preciso de uma licença? Um teste gratuito funciona para avaliação; uma licença permanente é necessária para produção.
  • Qual versão do Java é suportada? JDK 8 ou superior.
  • Quantas linhas de código são necessárias? Cerca de 30 linhas para uma implementação simples de provedor.

O que é o recurso “criar provedor de formas de palavras”?

Um create word forms provider é uma classe personalizada que implementa IWordFormsProvider. IWordFormsProvider é uma interface que define como os provedores fornecem formas alternativas de palavras ao motor de busca. Ela recebe uma palavra e retorna um array de formas possíveis — singular, plural ou outras variações linguísticas — com base nas regras que você definir. Isso permite que o índice de busca trate “cat” e “cats” como equivalentes, melhorando o recall sem sacrificar a precisão.

Por que usar o GroupDocs.Search para geração de formas de palavras?

O GroupDocs.Search oferece extensibilidade incorporada, permitindo que você conecte seu próprio provedor diretamente ao pipeline de indexação. Ele processa índices com até 10 milhões de documentos mantendo o uso de memória abaixo de 500 MB graças à arquitetura de streaming, e você pode armazenar em cache os resultados para alcançar tempos de consulta sub‑milissegundos.

Pré-requisitos

  • Maven instalado e um JDK 8 ou mais recente configurado em sua máquina.
  • Familiaridade básica com desenvolvimento Java e a configuração pom.xml do Maven.
  • Acesso à biblioteca GroupDocs.Search Java (versão 25.4 ou posterior).

Configurando o GroupDocs.Search para Java

Configuração do Maven

Adicione o repositório e a dependência ao seu arquivo pom.xml exatamente como mostrado abaixo:

<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

Alternativamente, faça o download do JAR mais recente na página oficial de lançamentos: GroupDocs.Search for Java releases.

Etapas de aquisição de licença

  1. Teste gratuito: Inscreva-se para um teste e explore os recursos principais.
  2. Licença temporária: Solicite uma chave temporária para testes prolongados.
  3. Compra: Obtenha uma licença comercial para uso de produção sem restrições.

Inicialização e configuração básicas

O trecho a seguir demonstra como criar um índice — seu ponto de partida para adicionar documentos e lógica de formas de palavras:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index
        Index index = new Index("path/to/index");
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Guia de implementação

A seguir, percorrermos os passos para criar um provedor de formas de palavras que lida com transformações simples de singular‑para‑plural e plural‑para‑singular.

Implementando o SimpleWordFormsProvider

Visão geral

A classe SimpleWordFormsProvider implementa IWordFormsProvider. O âncora de definição esclarece seu propósito:

SimpleWordFormsProvider é uma implementação personalizada de IWordFormsProvider que fornece variações singular‑plural para o motor de indexação.

Etapa 1 – criar o esqueleto da classe

Comece definindo uma classe que implementa IWordFormsProvider. Mantenha as declarações de importação inalteradas:

import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;

public class SimpleWordFormsProvider implements IWordFormsProvider {

Etapa 2 – implementar getWordForms

Adicione o método que constrói a lista de formas possíveis. Este bloco contém a lógica principal; você pode estendê-lo posteriormente para cobrir regras mais complexas.

getWordForms recebe um termo e retorna um String[] contendo todas as variações geradas.

    @Override
    public final String[] getWordForms(String word) {
        // Initialize a list to store generated word forms
        ArrayList<String> result = new ArrayList<>();

        // Singular form for words ending in 'es'
        if (word.length() > 2 && word.toLowerCase().endsWith("es")) {
            result.add(word.substring(0, word.length() - 2));
        }

        // Singular form for words ending in 's'
        if (word.length() > 1 && word.toLowerCase().endsWith("s")) {
            result.add(word.substring(0, word.length() - 1));
        }

        // Plural form by replacing 'y' with 'is'
        if (word.length() > 1 && word.toLowerCase().endsWith("y")) {
            result.add(word.substring(0, word.length() - 1).concat("is"));
        }

        // Basic plural forms
        result.add(word.concat("s"));
        result.add(word.concat("es"));

        // Convert list to array and return
        return result.toArray(new String[0]);
    }
}

Explicação da lógica

  • Singularização: Detecta sufixos plurais comuns (es, s) e os remove para aproximar a palavra base.
  • Pluralização: Lida com substantivos que terminam em y trocando-o por is, uma regra simples que funciona para muitas palavras em inglês.
  • Adição de sufixo: Adiciona s e es para cobrir formas plurais regulares que podem não ser capturadas pelas verificações anteriores.

Dicas de solução de problemas

  • Sensibilidade a maiúsculas/minúsculas: O método usa toLowerCase() para comparação, garantindo que “Cats” e “cats” se comportem da mesma forma.
  • Casos limites: Palavras mais curtas que o comprimento do sufixo são ignoradas para evitar retornar strings vazias.
  • Desempenho: Para vocabulários grandes, considere armazenar em cache os resultados em um ConcurrentHashMap.

Aplicações práticas

Implementar um create word forms provider pode impulsionar vários cenários reais:

  1. Motores de busca: Usuários que digitam “mouse” também devem encontrar documentos contendo “mice”. Um provedor pode gerar tais formas irregulares.
  2. Ferramentas de análise de texto: Sentimento ou extração de entidades torna-se mais confiável quando todas as variantes de palavras são reconhecidas.
  3. Sistemas de gerenciamento de conteúdo: A geração automática de tags pode incluir sinônimos plurais, melhorando SEO e links internos.

Considerações de desempenho

Ao incorporar o provedor em um sistema de produção, tenha em mente estas dicas:

  • Cache de formas usadas com frequência: Armazene resultados na memória para evitar recomputar a mesma palavra repetidamente.
  • Monitore o heap da JVM: Índices grandes podem aumentar a pressão de memória; ajuste -Xmx conforme necessário.
  • Use coleções eficientes: ArrayList funciona para pequenos conjuntos, mas para milhares de formas considere HashSet para eliminar duplicatas rapidamente.

Melhores práticas

  • Mantenha a biblioteca atualizada para se beneficiar de correções de desempenho.
  • Faça profiling do provedor com cargas de consulta realistas para identificar gargalos cedo.

Conclusão

Você agora aprendeu como gerar formas em Java usando um SimpleWordFormsProvider personalizado com o GroupDocs.Search. Este componente leve pode melhorar drasticamente a relevância dos resultados de busca e a precisão da análise linguística em muitas aplicações.

Próximos passos

  • Experimente regras linguísticas mais sofisticadas (plurais irregulares, stemming).
  • Integre o provedor em um pipeline de indexação e meça melhorias de recall.
  • Explore outros recursos do GroupDocs.Search, como dicionários de sinônimos e analisadores personalizados.

Chamada à ação: Experimente adicionar o SimpleWordFormsProvider ao seu próprio projeto hoje e veja como ele enriquece sua experiência de busca!

Seção de FAQ

Q: O que é o GroupDocs.Search para Java?
A: É uma biblioteca poderosa que oferece busca full‑text, indexação e recursos linguísticos — incluindo a capacidade de conectar provedores personalizados de formas de palavras.

Q: Como funciona o SimpleWordFormsProvider?
A: Ele gera formas alternativas aplicando regras simples baseadas em sufixos (removendo “s/es”, convertendo “y” para “is” e adicionando “s/es”).

Q: Posso personalizar as regras de geração de formas de palavras?
A: Absolutamente. Modifique o método getWordForms para incluir formas irregulares, regras específicas de localidade ou integração com dicionários externos.

Q: Quais são algumas aplicações comuns para este recurso?
A: Motores de busca, pipelines de análise de texto e plataformas CMS se beneficiam ao reconhecer variantes singular/plural.

Q: Preciso de uma licença comercial para uso em produção?
A: Sim — embora um teste permita explorar a API, uma licença comprada remove limites de uso e concede suporte.

Última atualização: 2026-09-02
Testado com: GroupDocs.Search 25.4 (Java)
Autor: GroupDocs

Tutoriais Relacionados