django haystack SearchField,索引为False

时间:2012-11-29 00:18:07

标签: django indexing search-engine django-haystack

是否有理由将indexed=False的其他字段设置为SearchIndex

文档提到应该定义其他字段以过滤或排序结果。默认情况下SearchIndexindexed=True,那么如果我设置indexed=False会怎样?

数据是否仍会存储在索引中但不会被编入索引?如果我设置stored=False会怎样?

它是如何运作的?

由于

1 个答案:

答案 0 :(得分:3)

默认情况下,Haystack中的所有字段都被编入索引(可由引擎搜索)并存储(由引擎保留并显示在结果中)。通过使用存储的字段,您可以存储常用数据,使您在处理搜索结果时无需访问数据库以获取更多信息。如果您指定indexed=Truestored=True,则会获得此优势。

如果仅指定indexed=True,则在处理搜索结果时将访问数据库以获取索引中未提供的其他信息。

indexed=False的目的是满足您希望渲染字段在索引编制过程中遵循预渲染模板的情况。这里举例说明了一个很好的例子 - https://django-haystack.readthedocs.org/en/latest/searchindex_api.html#stored-indexed-fields