Haystack Settings(設置)
如果你要擴展或者改變haystack的默認行為,你可以通過改變settings.py中的一些設置達到目的。這是Haystack設置的完整列表
HAYSTACK_DEFAULT_OPERATOR
Optional
該設置控制SearchQuerySet鏈式查詢的默認行為
合法的選項有:
HAYSTACK_DEFAULT_OPERATOR = 'AND'
HAYSTACK_DEFAULT_OPERATOR = 'OR'
默認是AND
HAYSTACK_CONNECTIONS
要求:
此設置控制后端所提供的可用選項。它應該是類似于以下(完整)示例的嵌套字典
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://localhost:9001/solr/default',
'TIMEOUT': 60 * 5,
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
'EXCLUDED_INDEXES': ['thirdpartyapp.search_indexes.BarIndex'],
},
'autocomplete': {
'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
'PATH': '/home/search/whoosh_index',
'STORAGE': 'file',
'POST_LIMIT': 128 * 1024 * 1024,
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
'EXCLUDED_INDEXES': ['thirdpartyapp.search_indexes.BarIndex'],
},
'slave': {
'ENGINE': 'xapian_backend.XapianEngine',
'PATH': '/home/search/xapian_index',
'INCLUDE_SPELLING': True,
'BATCH_SIZE': 100,
'EXCLUDED_INDEXES': ['thirdpartyapp.search_indexes.BarIndex'],
},
'db': {
'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
'EXCLUDED_INDEXES': ['thirdpartyapp.search_indexes.BarIndex'],
}
}
此設置不提供默認設置
主鍵(default&friends)是您的應用程序的標識符。您可以使用它們作為方法或kwarg使用API??的任何地方
這里至少有一個default鍵
ENGINE選項是所有后端都要指定的。
此外,每個后端都可能需要其他選項
-
Solr
- URL:The URL to the Solr core.
-
Whoosh
-
PATH
- The filesystem path to where the index data is located.
-
-
Xapian
-
PATH
- The filesystem path to where the index data is located.
-
以下選項是可選的:
INCLUDE_SPELLING
- Include spelling suggestions. Default is
False
- Include spelling suggestions. Default is
-
BATCH_SIZE
- How many records should be updated at once via the management commands. Default is1000
-
TIMEOUT
- (Solr and ElasticSearch) How long to wait (in seconds) before the connection times out. Default is10
-
STORAGE
- (Whoosh-only) Which storage engine to use. Acceptsfile
orram
. Default isfile
-
POST_LIMIT
- (Whoosh-only) How large the file sizes can be. Default is128*1024*1024
. -
FLAGS
- (Xapian-only) A list of flags to use when querying the index. -
EXCLUDED_INDEXES
- A list of strings (as Python import paths) to indexes you doNOTwant included. Useful for omitting third-party things you don’t want indexed or for when you want to replace an index. -
KWARGS
- (Solr and ElasticSearch) Any additional keyword arguments that should be passed on to the underlying client library.
HAYSTACK_ROUTERS
Optional
此設置控制如何執行路由以允許不同的后端處理更新/刪除/讀取
示例:
HAYSTACK_ROUTERS = ['search_routers.MasterSlaveRouter', 'haystack.routers.DefaultRouter']
默認['haystack.routers.DefaultRouter']
HAYSTACK_SIGNAL_PROCESSOR
Optional
此設置控制采用什么SignalProcessor類用于處理Django的信號,并保持搜索索引最新。
示例:
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
默認'haystack.signals.BaseSignalProcessor'
HAYSTACK_DOCUMENT_FIELD
Optional
此設置控制Haystack的默認搜索字段
示例:
HAYSTACK_DOCUMENT_FIELD = 'wall_o_text'
默認是 text
HAYSTACK_SEARCH_RESULTS_PER_PAGE
Optional
當使用SearchView
以及它的子類的時候,此設置控制每頁顯示的檢索結果數量
示例:
HAYSTACK_SEARCH_RESULTS_PER_PAGE = 50
默認是20
HAYSTACK_CUSTOM_HIGHLIGHTER
Optional
此選項允許你在模板標簽{%hightlight%}
中使用自定義的
示例:
HAYSTACK_CUSTOM_HIGHLIGHTER = 'myapp.utils.BorkHighlighter'
沒有默認值,Haystack直接使用默認實現
HAYSTACK_ITERATOR_LOAD_PER_QUERY
Optional
此設置控制通過使用SearchQuerySet迭代一次獲取到的結果數量。如果您一次通常消耗大量部件,您可以打破其設置,以獲得更好的性能
示例:
HAYSTACK_ITERATOR_LOAD_PER_QUERY = 100
默認值是一次10個結果
HAYSTACK_LIMIT_TO_REGISTERED_MODELS
Optional
此設置允許您控制Haystack是否會限制注冊模型的搜索結果。這是布爾值。
如果你的索引不會在注冊模型之外使用,那么你可以關閉并獲得小到中等的性能提升
示例:
HAYSTACK_LIMIT_TO_REGISTERED_MODELS = False
默認值是True
HAYSTACK_ID_FIELD
Optional
此設置允許您控制Haystack
內部使用的唯一字段名稱。很少需要,除非你的字段名與Haystack的默認值相沖突
示例:
HAYSTACK_ID_FIELD = 'my_id'
默認是id
HAYSTACK_DJANGO_CT_FIELD
Optional
此設置允許您控制Haystack內部使用的內容類型字段名稱。很少需要,除非你的字段名與Haystack的默認值相沖突。
示例:
HAYSTACK_DJANGO_CT_FIELD = 'my_django_ct'
默認是django_ct
HAYSTACK_DJANGO_ID_FIELD
Optional
詞設置允許您控制Haystack內部使用的主鍵的字段名稱。很少需要,除非你的字段名與Haystack的默認值相沖突。
示例:
HAYSTACK_DJANGO_ID_FIELD = 'my_django_id'
默認是django_id
HAYSTACK_IDENTIFIER_METHOD
Optional
此設置允許您從haystack.utils.get
identifier
提供自定義的方法。當<
app.label> <objec_name><pk>的默認標識符模式不適合您的需要時有用。
示例:
HAYSTACK_IDENTIFIER_METHOD = 'my_app.module.get_identifier'
默認是haystack.utils.default_get_identifier
HAYSTACK_FUZZY_MIN_SIM
Optional
此設置允許您在使用fuzzy
時更改所需的相似性
默認值是0.5