簡體   English   中英

用一個對象的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,則我想創建一個對象,並根據其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_valuetype : 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM