簡體   English   中英

提高彈性搜索中的特定字段值

[英]Boosting specific field value in Elastic search

嗨,我需要基於字段的特定值來增強文檔。.我的文檔包含一個名為Region的字段。.基於該區域中存在的值,我需要增強文檔。這些是我的文檔

{
    "title":"INOX: Malleshwaram - Mantri Square",
    "region":"Bangalore"
  }

    {
    "title":"INOX: Bund Garden Road",
    "region":"Pune"
   }

   {
    "title":"INOX: Glomax Mall, Kharghar",
    "region":"Mumbai"
  }

我試圖在我的查詢中使用rescore查詢,如下所示

"rescore" : {
      "query" : {
          "score_mode":"total",
          "query_weight" : 2.5,
         "rescore_query_weight" : 0.5,
         "rescore_query" : {
            "match" : {
               "region" : {
                  "query" : "mumbai",
                   "slop" : 2
               }
            }
         }
      }
   }
} 

但是它不能按要求正常工作。.有什么辦法解決這個問題嗎?

為什么要計分,您所需要的就是提高。 根據您使用的查詢類型,可以在

"query_string": {
  "fields":["region^56"],
  "use_dis_max" : true,
      "query": "mumbai"
}

其中^ 56是提升值。

您也可以按此處所述使用http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html

如果您正在使用布爾查詢,則可以像這樣使用boost來增強所有查詢

{
"bool" : {
    "must" : {
        "term" : { "region" : "mumbai" }
    },
    "boost" : 25.0
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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