gpt4 book ai didi

elasticsearch - 如何将异构数据添加到Elasticsearch?

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

我试图将异构数据(即不同“类型”的数据)添加到Elasticsearch。每个(顶层)对象都包含应用程序的用户设置。一个简化的示例是:

{
'name':'test',
'settings': [
{
'key':'color',
'value':'blue'
},
{
'key':'isTestingMode',
'value':true
},
{
'visibleColumns',
'value': [
'column1',
'column3',
'column4',
]
},
...
...
}

当我尝试添加它时,POST失败,并出现MapperParsingException。到处搜索,这似乎是因为“值”字段具有不同的类型。

有没有办法像这样存储任意数据?

最佳答案

这是不可能的。
映射是按字段进行的,并且映射不支持数组。
这意味着您可以将settings.value保留为字符串或数组,但不能同时保留。

一个简单的调整就是将所有值定义为数组-

{
'name':'test',
'settings': [
{
'key':'color',
'value': [ 'blue' ]
},
{
'key':'isTestingMode',
'value': [ true ]
},
{
'visibleColumns',
'value': [
'column1',
'column3',
'column4',
]
},
...
...
}

如果这是 Not Acceptable ,则另一个想法是应用 source transform,它将在对索引进行设置之前对settings.value字段进行此归一化。这样,源就保持不变,您将得到想要的东西。

关于elasticsearch - 如何将异构数据添加到Elasticsearch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194820/

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