[英]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,則我想創建一個對象,並根據其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分別分配給兩個字段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
如果文檔沒有該字段,則使用該值。 就像從文檔中讀取一樣,修飾符和因數仍然適用於它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.