vsql_trgm é um port do pg_trgm do PostgreSQL. Ele divide uma string em
pedaços de três caracteres e pontua duas strings por quantos pedaços elas
compartilham, de modo que um termo de busca com erro de grafia ainda encontra a
sua linha. Use-o quando o LIKE é estrito demais e a busca de texto completo é
grosseira demais.
Instalar
Ovsql_trgm.veb já está no diretório lib/veb/ do servidor se você instalou
o VillageSQL com o script de instalação, a imagem Docker ou um tarball de
release. Instale-o no servidor com uma única instrução:
O que ela adiciona
Ela adiciona três famílias de função. A família simples compara duas strings inteiras. A família de palavra encontra a substring da segunda string que melhor corresponde. A família estrita de palavra faz o mesmo, mas se alinha nos limites das palavras. Cada família tem o seu próprio limiar padrão.Exemplo
Monte uma pequena tabela de nomes:O
set_limit() do PostgreSQL não tem equivalente aqui, porque o vsql_trgm
não mantém estado de sessão. Em vez disso, passe o limiar que você quer para
o trgm_similar_threshold(). Um filtro de similaridade também lê todas as
linhas, então meça-o antes de executar um contra uma tabela grande.Veja também
- Similaridade por trigramas no MySQL — limiares, ordenação e o que custa em uma tabela grande
- Correspondência aproximada de strings — códigos fonéticos e distância de edição como alternativas
- Busca de texto completo — a ferramenta certa para documentos, e não para nomes
- Instalar extensões — como o
INSTALL EXTENSIONfunciona e onde o servidor procura um bundle - Extensões disponíveis — o catálogo completo
- villagesql/vsql-trgm — código-fonte, instruções de compilação e as limitações conhecidas