【问题标题】:Explain search (Sphinx/Haystack) in simple context?在简单的上下文中解释搜索(Sphinx/Haystack)?
【发布时间】:2012-12-19 10:10:29
【问题描述】:
您能否解释一下 Sphinx、Haystack 等搜索引擎如何融入 Web 框架。如果您能以 Web 开发新手可以理解的方式进行解释,那将有所帮助。
我为这个问题编造的一个示例用例是图书搜索功能。假设我有一个 noSQL 数据库,其中包含书籍对象,每个对象都包含作者、标题、ISBN 等;诸如 Sphinx/Haystack/其他搜索引擎之类的搜索引擎如何适应我的数据库来搜索具有给定 ISBN 的书籍?
【问题讨论】:
标签:
python
django
search
nosql
full-text-search
【解决方案1】:
首先,Haystack 不是搜索引擎,它是一个为 Solr 和 Whoosh 等现有搜索引擎提供 Django API 的库。
也就是说,你的例子并不是一个很好的例子。您不会使用单独的搜索引擎按 ISBN 进行搜索,因为您的数据库已经在 Book 表上有一个索引,可以有效地进行搜索。搜索引擎可能出现在两个地方。首先,您可以索引本书的部分或全部内容以进行搜索:数据库不太擅长全文搜索,但这是搜索引擎大放异彩的领域。其次,您可以一次性提供针对多个字段(例如作者、标题、出版商和描述)的搜索。
此外,搜索引擎还提供有用的功能,如建议、分面等,这些功能是您无法从数据库中获得的。