2

我只是想知道 haystack 提供的功能到底是什么,以及我是否需要它。

我的意思是搜索和索引是由嗖嗖声完成的。据我所知,haystack 只是提供现成的视图和表单。如果我想编写自己的表单和视图,我还需要 haystack 吗?我错过了什么吗?

PS我不打算使用除了whoosh之外的任何其他搜索引擎,所以我也不需要干草堆的多个搜索引擎包装。

4

1 回答 1

2

除了视图、表单和与搜索引擎无关的层之外,Haystack 的另一个强大之处在于它能够将 Django 模型映射到搜索索引可以理解的内容。使用 Haystack,您可以轻松地指定模型中的哪些字段应该被索引以及如何索引(参见 SearchIndex API - http://django-haystack.readthedocs.org/en/latest/searchindex_api.html)。

完成此操作后,您可以在需要时利用内置管理命令(重新)索引您的数据。

它还带有一些很好的模板标签来帮助呈现搜索结果,比如突出显示匹配的位。

您是否有不想使用 Haystack 的特殊原因?这是一个非常非侵入性的插件,可让您根据需要尽可能多地使用它,并且可以在以后需要时轻松使用更高级的功能。在我建立的一个网站中,我只使用了 SearchIndex 和 SearchQuerySet API;我建立了自己的观点和形式。最终,如果您最终编写自己的索引和搜索代码、视图和表单,那么您基本上已经重写了 Haystack 的大部分内容,在这种情况下,您可能需要考虑使用一些正在使用并且相当不错的东西测试。

也就是说,我在另一个项目中推出了自己的类似“Haystack”的层,主要是因为数据源没有映射到 Django ORM。在这种情况下,我编写了自己的索引脚本,并使用 PySolr 与我的 Apache Solr 实例进行交互。

鉴于 Whoosh 是用 Python 编写的,我认为它有一个不错的 Python 接口,所以应该不会太难做。不过,如果您的场景有什么特别之处,我只会这样做。

于 2013-10-12T08:26:03.463 回答