Pergunta

Eu tenho app Rails com um backend PostgreSQL.

Eu preciso adicionar pesquisa de texto completo que permitiria pesquisas difusas com base em Levenshtein distância ou outras métricas semelhantes. Adicione o fato de que o lexer / stemmer tem que trabalhar com palavras não-Inglês (que seria ok para recursos dependentes de idioma apenas Desligue ao léxico, para não mexer com a língua-alvo que pode ter palavras significativas consideradas pelo motor de Inglês como irrelevante ).

Eu acho que Postgres' tsearch não se aplica aqui como ele não tem pesquisa difusa -. Por favor me corrijam se eu estiver errado

Quais são as possíveis combinações de backends e plugins? Ele gostaria de preferir soluções que agregam menos para a infra-estrutura (por exemplo, se Postgres pode ter fts difusos, por que usar Lucene externo.); OTOH, a qualidade do Rails plugins envolvido é importante também.

O que você recomendaria?

update : parece que eu precisaria em vez de n-gramas métricas baseadas do que Levenshtein.

Foi útil?

Solução

Rails + Postgres + Solr + Sunspot

Solr é baseado em Lucene para que você possa tirar proveito de todas Lucene apresenta. Sunspot é um excelente invólucro Ruby para Solr API. Ambos grande trabalho Sunspot e Solr com Rails e PostgreSQL, eu usei-o para um projeto há mais de um mês atrás.

Outras dicas

PostgreSQL vem com uma extensão chamada pg_trgm (no contrib / diretório). Na minha experiência, é muito lento (mais como uma implementação de prova de conceito), mas para a sua aplicação que pode funcionar.

texticle ofertas beta pesquisa difusa para Postgres.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top