2012-11-29 41 views
6

是否有任何理由將其他字段設置爲indexed=FalseSearchIndexdjango haystack SearchField with indexed False

文檔中提到應該爲過濾或排序結果定義附加字段。默認SearchIndexindexed=True,那麼如果我設置indexed=False會發生什麼?

數據仍然會存儲在索引上但不會被編入索引嗎?如果我設置了stored=False,會發生什麼?

它是如何工作的?

由於

回答

3

默認情況下,在草堆的所有字段都被編入索引(由發動機搜索),並存儲(由發動機保留並呈現在結果)。通過使用存儲字段,您可以存儲常用數據,以便在處理搜索結果時無需點擊數據庫以獲取更多信息。如果指定indexed=Truestored=True,則可以獲得此優勢。

如果您只指定indexed=True,那麼在處理搜索結果以獲取索引中不可用的其他信息時將會觸擊數據庫。

indexed=False的目的是爲了迎合在渲染字段在索引過程中遵循預渲染模板的場景。這裏舉一個很好的例子 - https://django-haystack.readthedocs.org/en/latest/searchindex_api.html#stored-indexed-fields