我正在构建一个需要搜索功能的Django项目,直到有django.contrib.search
,我必须选择一个搜索应用。那么哪个最好? “最好的”我的意思是......
以下是我听过的一些应用程序,如果您知道有任何其他应用程序,请提出建议:
我还想避免使用第三方搜索引擎(例如Google SiteSearch),因为我想索引的一些数据仅供网站成员使用,不应公开。
答案 0 :(得分:101)
查看Haystack Search - 一个新的基于模型的搜索抽象层,目前支持Xapian,Solr和Whoosh。看起来它得到了很好的支持和记录。
答案 1 :(得分:19)
Justin,我先试试djangosearch:Jacob Kaplan-Moss(Django的首席开发人员)正在研究它。
潜在危害:
潜在利益:
django.contrib.search
。”答案 2 :(得分:18)
我正在寻找同样的事情,和很多其他人一样。我们希望很快就会添加 django.contrib.search 。
与此同时,这就是我发现的:
对我来说,大多数看起来都非常复杂,坦率地说,实施起来有点令人生畏。 我有兴趣了解你对这些的看法。
答案 3 :(得分:8)
我建议使用Sphinx进行全文搜索和聚合,django-sphinx非常适合生产使用。我们发现Sphinx是索引和搜索我们文档的资源最少且速度最快的方法,并且django-sphinx在sphinx客户端上是一个不错的包装器。
聚合组特别好,例如,如果要显示具有特定标记的文档或某个作者(或两者)与搜索匹配的文档数量。在内存中属性更新也很方便,特别是对于立即删除已删除的文章。
答案 4 :(得分:8)
djangosearch的Google代码页表示它已不再处于有效开发状态,并建议haystack或solango。
答案 5 :(得分:6)
谢谢加思。我曾经看到djangosearch希望成为官方的Django搜索,但我对使用它犹豫不决,因为我找不到任何文档!幸运的是,有一个我以前没见过的README in subversion,它让API看起来很酷:
# 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")
答案 6 :(得分:5)
我只需要一个非常快速的解决方案,对内部应用程序来说毫不费力。
我找到了文章Adding search to Django in a snap,这对我来说非常棒!
显然它缺乏像Haystack这样的真实项目的速度,可扩展性和功能,但是这个更容易设置,除了关键字AND-search之外我什么都不需要。
答案 7 :(得分:3)
您可能需要考虑让雅虎通过构建您自己的搜索服务(BOSS)来完成所有艰苦工作。这是一篇很棒的博客文章,引导您完成整个过程: http://www.peterkrantz.com/2008/yahoo-search-in-django/
答案 8 :(得分:2)
看起来每个人都错过django-xappy
在快速评估Django的所有现有搜索插件后,我发现这个插件最灵活,最容易使用。在很少的地方边缘很粗糙,但它仍然是在Django项目中使用Xapian搜索引擎的最佳方式。
答案 9 :(得分:2)
你可能想看Django Solr search(又名“Solango”),它附带了一些很好的文档来帮助你入门......
答案 10 :(得分:1)
如果要将大量数据编入索引或预计流量较高,我建议使用一些外部搜索引擎,例如Solr。这样,您将保持无共享方法,并能够独立扩展您的网站组件。
答案 11 :(得分:1)
我想我不得不向Djapian大声喊叫。
它坚如磐石......只需拉下源分布并窥视内部。顶级代码,没有太多评论......
它仍然是一个年轻的软件项目,但我认为django社区应该把它放在这个项目背后。
答案 12 :(得分:0)
谢谢乔,
我们决定使用Tsearch2和自定义postgres适配器。 Tsearch2不需要额外的流程来运行,这很方便,因为我们在一个内存有限的WebFaction托管上......它还没有完全完成,但似乎是一个很好的解决方案......
答案 13 :(得分:0)
答案 14 :(得分:0)
如果您愿意使用第三方搜索引擎,我可以推荐Yahoo BOSS和django-bosssearch。
Yahoo BOSS是一项付费服务,但可以节省您在服务器上设置和维护其他搜索软件的费用。