2017-04-12 15 views
1

我目前使用的是elasticsearch版本2.4,並希望根據我使用查詢時間提升或權重調用「類型」的字段對結果集進行微調。根據字段值添加查詢時間權重

例如

如果字段「類型」的值是「船」添加的加權或4

升壓如果字段「類型」的值是「卡車」添加的加權或提升3

因此,使與查詢字符串匹配的船隻出現在搜索結果中的大篷車之前。

我發現迄今爲止讀過的文檔在過濾器,函數和函數分數方面都非常複雜。如果有人能夠爲我的場景提供一個例子讓我走,我會很感激。

+0

嘗試'constant_score'查詢 – RoiHatam

+1

謝謝,很好的回答 – vybe

回答

0

您應該使用constant_score查詢和boost選項來確定優先級。

{ 
    "query": { 
    "bool": { 
     "should": [ 
      { 
       "constant_score": { 
        "boost": 4, 
        "query": { 
         "match": { 
          "description": "Boats" 
         } 
        } 
       } 
      }, 
      { 
       "constant_score": { 
        "boost": 3, 
        "query": { 
         "match": { 
          "description": "Caravans" 
         } 
        } 
       } 
      } 
     ] 
    } 
    } 
}