2017-03-22 8 views
0

特定のフィールドが別のフィールドよりも優先されるように、my esクエリの異なるフィールドにスコアブーストを追加しようとしています。接頭辞で、何らかの理由でプレフィックスとmatch_phrase_prefixクエリにフィールド別にboostを追加する

"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であなたの提案をクロームに追加してみましたが、この方法ではクエリは機能しません。 –

+0

私はクエリを変更し、答えを編集しました:match_phrase_prefixでは、私は 'value'を 'query'に置き換えてくれました。それもあなたのために働くのですか? – christinabo

+0

あなたの答えとクイック編集のために本当にありがとう - 私はそれが日曜日に動作するかどうかだけを伝えることができます:) –

関連する問題