gpt4 book ai didi

django - elasticsearch.exceptions.RequestError:[name_complete]的映射定义具有不受支持的参数:[payloads:true]

转载 作者:行者123 更新时间:2023-12-02 22:29:46 25 4
gpt4 key购买 nike

我当时在一个有3个模型的Django项目中工作。学生,大学,类(class)。我设置了模型,填充了数据库,并尝试使用Elastic Search进行搜索。
因此,我安装了Elastic Search version 5.5.0。这是我的Meta classmodels.py

class Meta:
es_index_name = 'django'
es_type_name = 'student'
es_mapping = {
'properties': {
'university': {
'type': 'object',
'properties': {
'name': {'type': 'string', 'index': 'not_analyzed'},
}
},
'first_name': {'type': 'string', 'index': 'not_analyzed'},
'last_name': {'type': 'string', 'index': 'not_analyzed'},
'age': {'type': 'short'},
'year_in_school': {'type': 'string'},
'name_complete': {
'type': 'completion',
'analyzer': 'simple',
'payloads': True,
'preserve_separators': True,
'preserve_position_increments': True,
'max_input_length': 50,
},
"course_names": {
"type": "string", "store": "yes", "index": "not_analyzed",
},
}
}

def get_es_name_complete(self):
return {
"input": [self.first_name, self.last_name],
"output": "%s %s" % (self.first_name, self.last_name),
"payload": {"pk": self.pk},
}
es_index_name, es_type_name, es_mapping在文件的顶部定义,如下所示:
import django.db.models.options as options


options.DEFAULT_NAMES = options.DEFAULT_NAMES + (
'es_index_name', 'es_type_name', 'es_mapping'
)

要将所有数据从数据库批量推送到索引,我有一个名为 push-to-index.py的命令文件。当我通过 python manage.py push-to-index执行它时,它会产生以下错误:
elasticsearch.exceptions.RequestError: TransportError(400, mapper_parsing_exception', Mapping definition for [name_complete] has unsupported parameters: [payloads : true]')

因此,我查看了Google,发现 payloads不再支持 version 5.5.0
我发现 here,他写道他伪造了 payload选项,如下所示: payload: { type: 'object', enabled: false }。所以我遵循了它,但是这样做的时候,我又遇到另一个错误,说 'enabled' is an unresolved issue。而且,如果我从元类和方法 payloads中都删除了 get_es_name_complete(self),则名称的自动完成功能将不起作用。

如何解决这个问题?

最佳答案

您定义了与完成提示器一起使用的name_complete字段,但是使用了不受支持的参数有效负载see documentations 17。因此,解决方法是删除该参数。

关于django - elasticsearch.exceptions.RequestError:[name_complete]的映射定义具有不受支持的参数:[payloads:true],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983541/

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