Pergunta

Estou construindo um projeto Django que precisa de funcionalidade de pesquisa e até que haja um django.contrib.search, tenho que escolher um aplicativo de pesquisa.Então, qual é o melhor?Por "melhor" quero dizer...

  • fácil de instalar/configurar
  • tem uma API compatível com Django ou pelo menos Python
  • pode realizar pesquisas razoavelmente complexas

Aqui estão alguns aplicativos dos quais ouvi falar. Sugira outros, se você souber de algum:

Também gostaria de evitar o uso de um mecanismo de pesquisa de terceiros (como o Google SiteSearch), porque alguns dos dados que gostaria de indexar são apenas para membros do site e não devem ser públicos.

Foi útil?

Solução

Confira Pesquisa no palheiro - uma nova camada de abstração de pesquisa baseada em modelo que atualmente suporta Xapian, Sol e Uau.Parece que está bem suportado e documentado.

Outras dicas

Justin, eu tentaria djangosearch primeiro:Jacob Kaplan-Moss (desenvolvedor líder do Django) está trabalhando nisso.

Perigos potenciais:

  • A página inicial avisa que a API pode não ser totalmente estável

Benefícios potenciais:

  • “O objetivo a longo prazo é que isto se torne django.contrib.search.”

Estou procurando a mesma coisa, assim como muitas outras pessoas.Vamos torcer para que django.contrib.search será adicionado em breve.

Enquanto isso, foi isso que descobri:

Para mim, a maioria parece bastante complicada e, francamente, um pouco assustadora de implementar.Eu estaria interessado em saber o que você acha disso.

Eu recomendaria o Sphinx para pesquisa e agregação de texto completo, e o django-sphinx é bom o suficiente para uso em produção.Descobrimos que o Sphinx era a maneira mais rápida e com menos uso de recursos para indexar e pesquisar nossos documentos e que o django-sphinx era um ótimo wrapper no topo do cliente sphinx.

O agrupamento por agregação é particularmente interessante se, por exemplo, você quiser exibir quantos documentos com uma determinada tag ou de um determinado autor (ou ambos) corresponderam a uma pesquisa.As atualizações de atributos na memória também eram convenientes, especialmente para remover artigos excluídos imediatamente.

A página de código do Google para djangosearch indica que não está mais em desenvolvimento ativo e sugere palheiro ou solango.

Obrigado Garth.Eu tinha visto que o djangosearch queria se tornar a busca oficial do Django, mas hesitei em usá-lo porque não consegui encontrar nenhuma documentação!Felizmente, há um README no subversão que eu não tinha visto antes e faz a API parecer muito legal:

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")

Eu só precisava de um muito rápido solução que não era complicada para um aplicativo interno.

encontrei o artigo Adicionando pesquisa ao Django num piscar de olhos, e isso funcionou esplêndido para mim!

Obviamente falta a velocidade, escalabilidade e recursos de projetos reais como Haystack, mas este é mais fácil de configurar e eu realmente não preciso de mais nada além de palavra-chave AND-search.

Você pode considerar deixar o Yahoo fazer todo o trabalho duro com o Build your own Search Service (BOSS).Aqui está uma ótima postagem no blog que orienta você no processo:http://www.peterkrantz.com/2008/yahoo-search-in-django/

Parece que todo mundo aqui sentiu falta Django-xappy

Após uma rápida avaliação de todos os complementos de pesquisa existentes para Django, achei este o mais flexível e fácil de usar.É áspero em alguns lugares, mas ainda é a melhor maneira de usar o poder do Xapian mecanismo de busca dentro de projetos Django.

Você pode querer dar uma olhada Pesquisa Django Solr (também conhecido como "Solango") que vem com uma boa documentação para você começar...

Se você tiver uma grande quantidade de dados a serem indexados ou espera alto tráfego, sugiro usar algum mecanismo de pesquisa externo, como Sol.Dessa forma, você manterá nada compartilhado abordagem e ser capaz de dimensionar os componentes do seu site de forma independente.

Acho que vou ter que gritar com Djapian.

É sólido como uma rocha... basta abrir uma distribuição de origem e dar uma olhada dentro.Código de primeira qualidade, sem muitos comentários.

Ainda é um projeto de software jovem, mas acho que a comunidade Django deveria investir seu peso nesse projeto.

Obrigado Joe,

Decidimos usar o Tsearch2 e um adaptador postgres personalizado.O Tsearch2 não precisa de nenhum processo extra para rodar, o que foi conveniente já que estamos em uma hospedagem WebFaction com memória limitada...Ainda não está completamente pronto, mas parece ser uma boa solução...

eu encontrei Djoosh que depende do mecanismo de pesquisa externo puro-python Uau para funcionar bem com meu cérebro 'Python'.

Se você estiver disposto a usar um mecanismo de pesquisa de terceiros, posso recomendar Yahoo CHEFE e django-bosssearch.

O Yahoo BOSS é um serviço pago, mas evita a configuração e manutenção de outros softwares de pesquisa em seu servidor.

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