是否有理由将indexed=False
的其他字段设置为SearchIndex
?
文档提到应该定义其他字段以过滤或排序结果。默认情况下SearchIndex
有indexed=True
,那么如果我设置indexed=False
会怎样?
数据是否仍会存储在索引中但不会被编入索引?如果我设置stored=False
会怎样?
它是如何运作的?
由于
答案 0 :(得分:3)
默认情况下,Haystack中的所有字段都被编入索引(可由引擎搜索)并存储(由引擎保留并显示在结果中)。通过使用存储的字段,您可以存储常用数据,使您在处理搜索结果时无需访问数据库以获取更多信息。如果您指定indexed=True
和stored=True
,则会获得此优势。
如果仅指定indexed=True
,则在处理搜索结果时将访问数据库以获取索引中未提供的其他信息。
indexed=False
的目的是满足您希望渲染字段在索引编制过程中遵循预渲染模板的情况。这里举例说明了一个很好的例子 - https://django-haystack.readthedocs.org/en/latest/searchindex_api.html#stored-indexed-fields