我正在创建食物搜索。我想简单地将食物输入搜索框并让它返回结果。我还希望能够为某些术语添加优先级,以便它们显示出来。例如,搜索“橙色”会首先带来果实而不是果汁。
我无法在django中为这种情况确定更好的搜索解决方案。
让我知道哪种方案更适合这种情况。
答案 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
索引中的索引速度非常快,但它要求您在更新数据库时重新索引所有内容。这个特殊的设置对我来说非常方便,因为我用它来索引每天只改变一次的数据库。