gpt4 book ai didi

python - Haystack 多个索引 - 即使有不同的 search_indexes 也有相同的索引

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:59 25 4
gpt4 key购买 nike

我有以下搜索

class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
destination = indexes.FacetIntegerField(
model_attr='hotel__destination__id')
country = indexes.FacetIntegerField(model_attr='hotel__country__id')
hotel_class = indexes.FacetCharField(model_attr='hotel__hotel_class')
hotel_type = indexes.FacetIntegerField(model_attr='hotel__hotel_type__id')


def get_model(self):
return Product

def index_queryset(self, using=True):
return self.get_model().objects.all()



class DestinationIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
content_auto = indexes.EdgeNgramField(model_attr="foo")

然后在 settings.py 中进行设置

HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE':
'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
'autocomplete': {
'ENGINE':
'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autcomplete',
}
}

但是当我说 rebuild_indexes 时,两个索引变得相同,它们根据两个索引类进行索引。但我希望使用 ProductIndex 索引默认索引,并使用 Destination 索引索引自动完成。

有什么想法吗?

最佳答案

您可以使用键 EXCLUDED_INDEXES 排除索引:

HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE':
'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
'EXCLUDED_INDEXES': ['my_destination_app.search_indexes.DestinationIndex'],
},
'autocomplete': {
'ENGINE':
'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'autcomplete',
'EXCLUDED_INDEXES': ['my_product_app.search_indexes.ProductIndex'],
}
}

关于python - Haystack 多个索引 - 即使有不同的 search_indexes 也有相同的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233752/

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