A frase que sumiu do catálogo

O sistema tinha um catálogo de itens usados em análises de preços. Para encontrar algo, a pessoa digitava uma descrição antes de comparar os resultados. “Serviços de vigilância” não trazia nada. “Vigilância”, sozinha, encontrava o item. Parecia que o catálogo tinha perdido um registro. Não tinha. Era a busca que lia a frase de um jeito diferente de quem a digitou.

O índice guardava palavras com três ou mais caracteres. O “de” ficava de fora. Já a consulta exigia encontrar todos os termos digitados, inclusive aquele que o índice nunca poderia devolver. O resultado vazio parecia dizer algo sobre o catálogo. Na verdade, eram duas regras incompatíveis se encontrando.

A solução mais curta seria ignorar termos de dois caracteres. Aí entra “A4”. Também tem dois caracteres, mas, em uma busca por papel, pode ser a parte mais importante do pedido. O problema não era o tamanho do termo. Era decidir o que podia sair sem mudar a pergunta.

Quando ajudar muda o pedido

Outra saída apareceu na revisão: quando uma palavra não encontra correspondência, continuar com as demais. O teste com “caneta esferografica azull” mostrou o preço dessa gentileza. Como a cor tinha sido digitada com erro, a busca a descartava e devolvia canetas pretas e vermelhas. A lista vinha cheia, mas respondia a outra pergunta.

“De” pode ser reconhecido como conectivo. “Azull” não pode virar autorização para ignorar a cor. Essa diferença importa porque uma lista plausível costuma inspirar mais confiança do que uma tela vazia, mesmo quando está errada.

A revisão também testou reduzir as palavras do catálogo a radicais. Parecia uma forma de alcançar plurais, até “JEANS” virar “jeam” e uma busca literal por “jean” deixar de encontrá-lo. Como o índice dependia de prefixos, mexer nos termos guardados apagava caminhos que já funcionavam. A expansão precisava ficar do lado da consulta, sem reescrever o catálogo.

O plural que vinha de carona

O plural ainda tinha seu próprio truque. Prefixos só crescem para a direita: “serviços” não alcança “serviço”. E escolher um único radical não bastava. Uma redução de “celulares” podia parar em “celulare”, sem chegar a “celular”. A consulta precisava considerar mais de um candidato.

Em uma frase com várias palavras, outro termo podia encontrar o item e fazer o teste passar. O plural vinha de carona. Quando “celulares” apareceu sozinho na consulta, ficou claro que ele não era responsável por nenhum resultado. Esse é o tipo de teste que muda a leitura do problema, não apenas a contagem de casos cobertos.

Havia ainda uma surpresa na ordem da lista. O ranking procurava a posição do termo digitado na descrição; em um resultado encontrado só pela expansão da consulta, essa posição era -1. A pontuação podia tratar esse -1 como melhor do que uma correspondência literal logo no começo do texto. A expansão fazia o item aparecer, mas o ranking ainda precisava distinguir o que a pessoa escreveu do que a busca inferiu.

A pergunta inteira

O mesmo catálogo era consultado pela caixa de busca, por uma importação e por uma checagem de relevância. Cada caminho interpretava os termos à sua maneira. Por isso, a revisão reuniu as regras em um ponto compartilhado: conectivos conhecidos ficaram de fora, enquanto termos curtos com significado, como “A4”, continuaram pesquisáveis.

No catálogo testado, a frase completa voltou a trazer resultados, o plural isolado passou a encontrar o item e uma cor escrita com erro não fez a busca devolver canetas de outras cores. Os mesmos casos passaram pelos três caminhos. Quando a expansão por vários candidatos foi trocada de propósito por um radical único, os testes falharam. Isso dá mais confiança de que os testes capturam aquela diferença, embora não prove a relevância de toda consulta futura.

Começou com um “de”, mas a parte interessante não era aquela palavra. Era o contrato da busca: quais termos podem ser perdoados, quais precisam restringir o resultado e quanto uma inferência pode valer no ranking. Uma lista não vazia, sozinha, não responde a nenhuma dessas perguntas.