Pergunta

O pessoal de rubi tem Ferret . Alguém sabe de qualquer iniciativa semelhante para Python? Estamos usando PyLucene a atual, mas eu gostaria de investigar se mudar para pura busca Python.

Foi útil?

Solução

Whoosh é um novo projeto que é semelhante ao Lucene, mas é pura python.

Outras dicas

O único puro-python (não envolvendo até mesmo extensão C) solução de pesquisa que eu conheço é Atomics . É lento (muito mais lento do que PyLucene) e instável ainda.

Nós mudamos de casa cozido pesquisa baseada em PyLucene e indexação para Solr mas YMMV.

Eu encontrei recentemente pyndexter . Ele fornece interface abstrata para várias diferentes de busca backend full-text motores / indexadores. E ele vem com uma implementação padrão puro-Python.

Essas coisas podem ser desastrosamente lento embora em Python.

Para algumas aplicações pura Python é superestimada. Dê uma olhada em Xapian.

lupy era uma porta lucene para pitão puro. Os lupy pessoas sugerem que você usa PyLucene . Desculpe. Talvez você possa usar as fontes Java em combinação com Jython .

+1 para as respostas Xapian e Pyndexter.

Ferret é escrito em C com ligações rubi no topo. Um rubi motor de pesquisa pura seria ainda mais lento do que um puro um Python. Eu adoraria ver "alguém" escrever uma camada Cython / Pyrex para a interface Python para Ferret, mas não vai fazer isso sozinho, porque por que se preocupar quando há vínculos Python para Xapian.

Para não-puro Python, Esfinge Pesquisa com Python API trabalha o mais rápido. A partir da referência de vários blogs, Esfinge de busca é muito mais rápido do Lucene, usa maneira menos memória e é em C.

Estou desenvolvendo um motor de busca multi-documento baseado nele, usando python e web2py como quadro.

Depois de semanas de procura para este, eu encontrei uma boa solução Python: repoze.catalog . Não é estritamente Python somente porque ele usa ZODB para o armazenamento, mas parece uma dependência melhor para mim do que algo como SOLR.

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