2017-03-22 63 views
0

我想在我的es查詢中的不同字段添加分數提升,以便某個字段將優先於另一個字段。將字段添加到前綴和match_phrase_prefix查詢

我的查詢看起來是這樣的:

"query": { 
    "bool": { 
     "should": [{ 
      "prefix": { 
       "title": "נפצ" 
      }},{ 
      "match_phrase_prefix": { 
       "sub_title": "נפצע קש" 
      } 
     }] 
    } 
} 

出於某種原因,帶有前綴和match_phrase_prefix好像我不能加分的助推器。

什麼,我想實現的應該是這個樣子:

"query": { 
    "bool": { 
     "should": [{ 
      "prefix": { 
       "title": "נפצ" 
       "score": 2 
      } 
        },{ 
      "prefix": { 
       "sub_title": "נפ" 
       "score": 1 
      } 
        }] 
    } 
} 

回答

1

[編輯]使用boost應該解決的問題。根據documentation,類似的東西必須爲你工作(雖然我沒有自己嘗試過):

"query": { 
    "bool": { 
     "should": [{ 
      "prefix": { 
       "title": { 
        "value": "נפצ", 
        "boost": 2.0 
       } 
      }},{ 
      "match_phrase_prefix": { 
       "sub_title": { 
        "query": "נפצע קש", 
        "boost": 1.0 
       } 
      } 
     }] 
    } 
} 
+0

謝謝你的回覆。我已經在Sense的Chrome瀏覽器中嘗試了你的建議,並且查詢不能以這種方式工作。 –

+0

我修改了查詢並編輯了答案:在match_phrase_prefix中,我用'query'替換了'value'併爲我工作。它也適用於你嗎? – christinabo

+0

非常感謝你的回答和快速編輯 - 我只能告訴你它是否在週日工作:) –