django haystack elasticsearch 多个搜索字段
django haystack elasticsearch multiple search fields
我已经成功地实现了 2 个模型的 haystack 搜索引擎。这些模型应该在同一领域内进行搜索,这样就可以了。但是现在我想要一个新模型的不同搜索索引,这个索引与前两个索引没有关系,并且将在具有不同搜索字段的不同页面上使用。
我不知道该怎么做。
我读到我可以像这样使用 2 个引擎,但是在设置之后我不知道如何在视图中告诉第二次搜索使用不同的模型。
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
'EXCLUDED_INDEXES': ['names.search_indexes.NamesIndex'],
},
'autocomplete': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autcomplete',
'EXCLUDED_INDEXES': ['players.search_indexes.PlayersIndex', 'allauth.search_indexes.UserIndex'],
}
}
像这样:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet(using='autocomplete')
我已经成功地实现了 2 个模型的 haystack 搜索引擎。这些模型应该在同一领域内进行搜索,这样就可以了。但是现在我想要一个新模型的不同搜索索引,这个索引与前两个索引没有关系,并且将在具有不同搜索字段的不同页面上使用。 我不知道该怎么做。 我读到我可以像这样使用 2 个引擎,但是在设置之后我不知道如何在视图中告诉第二次搜索使用不同的模型。
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
'EXCLUDED_INDEXES': ['names.search_indexes.NamesIndex'],
},
'autocomplete': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autcomplete',
'EXCLUDED_INDEXES': ['players.search_indexes.PlayersIndex', 'allauth.search_indexes.UserIndex'],
}
}
像这样:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet(using='autocomplete')