gpt4 book ai didi

python - 干草堆elasticsearch RealtimeSignalProcessor仅更新 “default”连接

转载 作者:行者123 更新时间:2023-12-03 00:31:39 25 4
gpt4 key购买 nike

我有3个搜索索引和3个干草堆连接。我希望索引可以实时更新,所以我使用RealtimeSignalProcessor。它仅适用于3个连接中的1个(“默认”),但是当我使用其他2个连接搜索术语时却不起作用。比起我必须手动执行python manage.py update_index才能使其工作。。如何在不手动更新索引的情况下解决此问题?

HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
'autocomplete_tags': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autcomplete',
'EXCLUDED_INDEXES': ['entities.search_indexes.EntityIndex', 'allauth.search_indexes.UserIndex'],
},
'autocomplete_entities': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autocomplete_entities',
'EXCLUDED_INDEXES': ['tags.search_indexes.TagsIndex', 'allauth.search_indexes.UserIndex'],
}
}

HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

回答:

我发现用RealtimeSignalProcessor仅更新“默认”连接的原因是“INDEX_NAME”。将所有3个连接“INDEX_NAME”更改为“干草堆”后,它即可工作。

最佳答案

我认为您采用Elasticsearch的方法不正确。通常,您只有一个索引,并且其中包含多种类型。如果您采用这种方法,那么所有类型都应该自动更新(希望如此)。

Haystack是在考虑Solr的基础上构建的,我建议您使用Solr。 Haystack会为您要索引的模型建议诸如“索引”之类的术语,但实际上是ElasticSearch中的一种类型。查看HAYSTACK_CONNECTIONS,您已创建3个索引,而不是索引中的3种类型。

我在Haystack中与Elasticsearch一起工作,但是要对其进行调整还有很多工作要做。

关于python - 干草堆elasticsearch RealtimeSignalProcessor仅更新 “default”连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com