什么是最好的Django搜索应用程序?

Jus*_*oss 110 python django search search-engine

我正在构建一个需要搜索功能的Django项目,直到有了django.contrib.search,我必须选择一个搜索应用程序.那么哪个最好?"最好的"我的意思是......

  • 易于安装/设置
  • 有一个Django或至少Python友好的API
  • 可以执行相当复杂的搜索

以下是我听过的一些应用程序,如果您知道任何其他应用程序,请建议其他人:

我还想避免使用第三方搜索引擎(如Google SiteSearch),因为我想索引的一些数据仅供网站成员使用,不应公开.

kpw*_*kpw 102

查看Haystack Search - 一个新的基于模型的搜索抽象层,目前支持Xapian,SolrWhoosh.看起来它得到了很好的支持和记录.

  • Haystack正在积极开发中,作者总是通过电子邮件列表提供. (3认同)
  • 来自djangosearch项目:"这个项目不再处于积极开发阶段.如果你正在寻找一个适用于多个搜索引擎的django全文搜索应用程序,请查看haystack.如果你正在寻找Solr特有的东西,你可能会想试试solango." (2认同)

Gar*_*idd 19

Justin,我首先尝试djangosearch:Jacob Kaplan-Moss(Django的首席开发人员)正在研究它.

潜在危险:

  • 主页警告API可能不完全稳定

潜在好处:

  • "长期目标是让它成为现实django.contrib.search."

  • 该页面现在说"这个项目不再处于活跃开发状态.如果你正在寻找一个适用于多个搜索引擎的django全文搜索应用程序,请查看Haystack." (44认同)

小智 18

和其他很多人一样,我正在寻找同样的事情.我们希望很快就会添加django.contrib.search.

与此同时,这是我发现的:

对我来说,大多数看起来都非常复杂,坦率地说,实施起来有点令人生畏.我有兴趣了解你对这些的看法.


小智 8

我建议使用Sphinx进行全文搜索和聚合,django-sphinx足以用于生产.我们发现Sphinx是索引和搜索我们文档的资源最少且速度最快的方法,并且django-sphinx在sphinx客户端上是一个不错的包装器.

聚合组特别好,例如,如果要显示具有特定标记或某个作者(或两者)匹配搜索的文档数量.在内存中属性更新也很方便,特别是对于立即删除已删除的文章.


Joe*_*ska 8

djangosearch的谷歌代码页表明它已不再处于活跃开发状态,并建议使用haystacksolango.

  • Solango表示它已不再开发并建议使用Haystack. (2认同)

Jus*_*oss 6

谢谢Garth.我曾经看到djangosearch希望成为官方的Django搜索,但我对使用它犹豫不决,因为我找不到任何文档!幸运的是,我在之前没见过颠覆自述文件,它使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")
Run Code Online (Sandbox Code Playgroud)


odi*_*ont 6

我只需要一个非常快速的解决方案,对内部应用程序来说不费吹灰之力.

我发现文章快速添加搜索到Django,这对我来说非常棒!

显然它缺乏像Haystack这样的真实项目的速度,可扩展性和功能,但是这个更容易设置,除了关键字AND-search之外我真的不需要任何其他东西.