2017-01-06 112 views
0

我試圖將增強功能添加到與術語篩選器匹配的文檔。基礎是Boolean/MatchAll查詢。但是我的Elasticsearch查詢中的提振沒有效果。使用過濾查詢時,升壓工程Elasticsearch中的布爾篩選查詢中增強功能無效

curl -XPOST localhost:9200/wiki_content/_search?pretty -d ' 
{ 
    "_source": [ 
    "title" 
    ], 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "match_all": {} 
     } 
     ], 
     "filter": [ 
     { 
      "bool": { 
      "should": [ 
       { 
       "term": { 
        "title.keyword": { 
        "value": "Main Page", 
        "boost": 9 
        } 
       } 
       }, 
       { 
       "term": { 
        "title.keyword": { 
        "value": "Top Page", 
        "boost": 999 
        } 
       } 
       } 
      ] 
      } 
     } 
     ] 
    } 
    } 
} 
' 

但是:所有結果分數設置爲1。但由於我的系統中的限制,我無法使用過濾的查詢。那麼是否有任何方法可以使原始查詢工作中的提升?

回答

0

在查詢的過濾器部分,boosting將不起作用,因爲只有過濾器的工作是,ehhm過濾匹配某些值的查詢。嘗試改爲:

curl -XPOST localhost:9200/wiki_content/_search?pretty -d ' 
{ 
    "_source": [ 
    "title" 
    ], 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "match_all": {} 
     } 
     ], 
     "should": [ 
     { 
      "term": { 
      "title.keyword": { 
       "value": "Main Page", 
       "boost": 9 
      } 
      } 
     }, 
     { 
      "term": { 
      "title.keyword": { 
       "value": "Top Page", 
       "boost": 999 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
' 

...將兩個term-queries直接移動到最高級別bool查詢中的should-clause。