django haystack或sphinx进行简单搜索?

时间:2014-08-08 18:49:38

标签: python django search sphinx django-haystack

我正在创建食物搜索。我想简单地将食物输入搜索框并让它返回结果。我还希望能够为某些术语添加优先级,以便它们显示出来。例如,搜索“橙色”会首先带来果实而不是果汁。

我无法在django中为这种情况确定更好的搜索解决方案。

让我知道哪种方案更适合这种情况。

1 个答案:

答案 0 :(得分:2)

我是Django-SphinxQL的当前维护者,Django中的Sphinx实现,以及Haystack的Xapian backend的维护者。

我建议使用Haystack:

  • Haystack允许您在不同的后端之间进行选择,支持大多数标准搜索功能(例如突出显示),并且已经在Django的搜索引擎上经得起时间的考验。

  • Django-SphinxQL处于pre-alpha状态(其他实现如Django-Sphinx已停滞),并且只支持一组最小的功能。

我认为选择Sphinx搜索而不利于Haystack(例如使用Django-SphinxQL)的唯一原因是,如果你特别有一个用例,其中Sphinx明显优于任何Haystack后端。

例如,已知Sphinx在plain索引中的索引速度非常快,但它要求您在更新数据库时重新索引所有内容。这个特殊的设置对我来说非常方便,因为我用它来索引每天只改变一次的数据库。