Django Haystack还是Sphinx用于简单搜索?
我正在创建一个食物搜索功能。我希望用户能够在搜索框里输入食物名称,然后返回相关的结果。同时,我还想给某些词设置优先级,让它们更容易显示出来。例如,当搜索“橙子”时,结果中应该先显示水果,而不是果汁。
我还没找到在django中实现这个功能的最佳搜索方案。
请告诉我在这种情况下哪个方案更好。
1 个回答
2
我现在是 Django-SphinxQL 的维护者,这是一个在 Django 中使用 Sphinx 的实现。同时,我也是 Haystack 的 Xapian 后端的维护者。
我推荐使用 Haystack,原因如下:
Haystack 让你可以选择不同的后端,并且支持大多数搜索的标准功能(比如高亮显示),而且在 Django 的搜索引擎中已经经过了时间的考验。
Django-SphinxQL 目前还处于早期开发阶段(其他类似的实现,比如 Django-Sphinx 也停滞不前),只支持一些基本的功能。
我认为选择 Sphinx 搜索而放弃 Haystack(比如使用 Django-SphinxQL)的唯一理由是,如果你有一个特定的需求,Sphinx 在某些方面明显优于任何 Haystack 的后端。
举个例子,Sphinx 在 plain
索引中的索引速度非常快,但每次更新数据库时都需要重新索引所有内容。对我来说,这种设置非常方便,因为我用它来索引一个每天只更新一次的数据库。