ElasticSearch null_value 有一个对象?
ElasticSearch null_value with an object?
是否可以在 ElasticSearch 中使用对象进行 null_value
映射?
{
"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
}
}
}
}
}
如果上面映射中的 stats
属性 为空,我想创建一个对象,并根据 null_value 映射填充属性。在基础属性上指定 null_value 似乎不起作用。
ElasticSearch 是否允许 null_value 对象映射?
首先,让我们看看 null_value 做了什么。对于字段名称,如果 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 分配给两个字段 name.first_name 和 name.last_name 分别作为 john 和 dep。
不,你不能将 null_value
与 type : object
一起使用
但是field_value_factor
有一个选项missing
查看文档https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
Value used if the document doesn’t have that field. The modifier and
factor are still applied to it as though it were read from the
document.
是否可以在 ElasticSearch 中使用对象进行 null_value
映射?
{
"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
}
}
}
}
}
如果上面映射中的 stats
属性 为空,我想创建一个对象,并根据 null_value 映射填充属性。在基础属性上指定 null_value 似乎不起作用。
ElasticSearch 是否允许 null_value 对象映射?
首先,让我们看看 null_value 做了什么。对于字段名称,如果 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 分配给两个字段 name.first_name 和 name.last_name 分别作为 john 和 dep。
不,你不能将 null_value
与 type : object
但是field_value_factor
有一个选项missing
查看文档https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
Value used if the document doesn’t have that field. The modifier and factor are still applied to it as though it were read from the document.