gpt4 book ai didi

elasticsearch - ElasticSearch 5:插入数据时发生MapperParserException

转载 作者:行者123 更新时间:2023-12-03 01:43:45 26 4
gpt4 key购买 nike

我最初的映射是

{
"vehiclemodel": {
"properties": {
"price": {
"type": "double"
}
}
}
}

后来我更新了下面的映射
{
"vehiclemodel": {
"properties": {
"price": {
"type": "double",
"fields": {
"exShowroomPrice": {
"type": "double"
}
}
}
}
}
}

现在,当我添加 Data1 时,它将被添加,但是当我添加 Data2 时,它将引发以下异常

数据1 :
{
"price": 36992043
}

数据2 :
{
"price": {
"exShowroomPrice": 36992043
}
}

异​​常:
{
'index': {
'_index': 'notes',
'_type': 'vehiclemodel',
'_id': 'fb85823a-021b-468c-91d9-8db5f001ee06',
'status': 400,
'error': {
'type': 'mapper_parsing_exception',
'reason': 'failed to parse [price]',
'caused_by': {
'type': 'json_parse_exception',
'reason': 'Current token (START_OBJECT) not numeric, can not use numeric value accessors\n at [Source: org.elasticsearch.common.bytes.BytesReference$MarkSupportingStreamInputWrapper@6e2393ee; line: 1, column: 277]'
}
}
}
}

我的集合 vehiclemodel中具有两种数据类型:MongoDB 。我正在使用mongo-connector在mongo和ES之间同步数据。当我尝试同步时,出现上述异常

最佳答案

您的映射与我认为要实现的目标不正确。

fields映射使您可以使用不同的分析器为同一字段索引(例如,请参见链接的文档以获取详细信息)。因此,就您而言,

{
"price" : 1923
}

ES会将其存储两次,一次存储为price,一次存储在price.exShowroomPrice路径下。

您可以只添加一个完全独立的属性,而无需维护层次结构。例如,像这样的映射:
{
"vehiclemodel": {
"properties": {
"price": {
"type": "double"
},
"exShowroomPrice": {
"type": "double"
}
}
}
}

然后像这样发送数据:
{
"price" : 1923
"exShowroomPrice" : 1800
}

我不知道mongo-connector的工作原理,但是应该有一种映射这些字段的方法。

关于elasticsearch - ElasticSearch 5:插入数据时发生MapperParserException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45508156/

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