是否可以使用一个对象null_value
ElasticSearch 中的映射?
{
"properties-v3": {
"mappings": {
"property": {
"properties": {
// ... omitting lots of properties for brevity
"stats": { // <-- Need to populate this if null
"properties": {
"bookings": {
"type": "long",
"null_value": 0
},
"enquiries": {
"type": "long",
"null_value": 0
},
"favorites": {
"type": "long",
"null_value": 0
},
"pageViews": {
"type": "long",
"null_value": 0
}
}
},
// ... more properties here
}
}
}
}
}
If the stats
上面映射中的属性为 null,我想创建一个对象,并根据其 null_value 映射填充属性。在基础属性上指定 null_value 似乎不起作用。
ElasticSearch 是否允许对象的 null_value 映射?
首先,让我们看看 null_value 做了什么。对于字段 name ,如果有 null_value 设置为某个值,则不会将此信息添加到 _source 中,而是将该值转到反向索引。这意味着您可以根据 null_value 进行搜索,但它不会显示在 _source 中。
举一个例子,假设我正在索引以下文档 -
{
"class" : "10m
"address" : "abcs"
}
在这里,假设对于字段名称,我们已将 null_value 启用为“John”
现在,如果我执行以下查询 -
{
"query" : {
"match" : {
"name" : "john"
}
}
}
即使它没有值为 john 的字段名称,它也会匹配上一个文档。但随后在返回的文档中将不会显示该值。这意味着 _source 无论如何都没有改变,只是我们正在改变整个上下文的搜索能力行为。
现在回到你的问题 - 如果你想将 null_value 放入一个对象中,比如说,
对于字段名称,将以下对象设置为 null_value
{
"first_name" : "john",
"last_name" : "dep"
}
然后,可以将 null_value 分别指定为 john 和 dep 两个字段 name.first_name 和 name.last_name 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)