我一直在阅读有关 Haystack、Whoosh、Xapian 等的信息。但是我并没有真正了解它们的确切用途以及它们之间的关系。例如,据说
在第三方应用程序上启用搜索,而无需接触该应用程序的代码。
有人可以向我解释这些是用来做什么的,也许可以提供一个很好的链接,并且足够简单,可以让初学者理解。谢谢
我一直在阅读有关 Haystack、Whoosh、Xapian 等的信息。但是我并没有真正了解它们的确切用途以及它们之间的关系。例如,据说
在第三方应用程序上启用搜索,而无需接触该应用程序的代码。
有人可以向我解释这些是用来做什么的,也许可以提供一个很好的链接,并且足够简单,可以让初学者理解。谢谢
Haystack与 Whoosh/Xapian/etc 是不同的野兽:
Haystack 为 Django 提供模块化搜索。它具有统一、熟悉的 API,允许您插入不同的搜索后端(例如 Solr、Whoosh、Xapian 等),而无需修改代码。
从常见问题解答(强调添加):
什么是干草堆?
Haystack 旨在成为您选择的搜索引擎的便携式界面。有些人可能会称其为搜索框架、抽象层或您所拥有的。这个想法是您编写一次搜索代码,并且应该能够根据您的情况在后端之间自由切换。
提到的“搜索后端”是具有自己 API 的搜索库。Haystack 在任何一个特定的搜索库之上(并且独立于)提供了一个统一的 API。