6

是否有任何理由使用indexed=Falseinto设置其他字段SearchIndex

文档提到应该为过滤或排序结果定义额外的字段。默认情况下SearchIndexindexed=True,那么如果我设置会发生什么indexed=False

数据是否仍会存储在索引中但不会被索引?如果我设置会发生什么stored=False

它是如何工作的?

谢谢

4

1 回答 1

4

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

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

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

于 2012-11-29T02:56:56.053 回答