2016-12-01 17 views
0

ドキュメント全体(例:「開発者」)と別の用語(「php」など)の検索を混在させたい。 各検索は別々に行うことはできますが、それらを混在させることはできません。弾性:2つの用語を1つのフィールドで検索し、1つをフィールドで検索する

ここでは(唯一の私の問題を示すように簡略化)私の例:

{ 
    "query": { 
    "function_score": { 
     "query": { 
     "match": { 
      "_all": "developer" 
     }, 
     "multi_match": { 
      "query": "php", 
      "fields": [ 
      "skills.description", 
      "skills.description", 
      "skills.details" 
      ], 
      "operator": "or", 
      "type": "most_fields" 
     } 
     } 
    } 
} 

私はこの例を実行すると、私はエラーを持っている:

Parse Failure [Failed to parse source 

は両方_allで検索する方法はありますし、 2つの用語を持つ特定のフィールド?

ありがとうございました。

答えて

1

はい、あなたはほとんどそこにいる、あなたはbool/mustクエリにそれらを結合する必要があります。

{ 
    "query": { 
    "function_score": { 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "match": { 
       "_all": "developer" 
       } 
      }, 
      { 
       "multi_match": { 
       "query": "php", 
       "fields": [ 
        "skills.description", 
        "skills.description", 
        "skills.details" 
       ], 
       "operator": "or", 
       "type": "most_fields" 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

ああ、それだけでこのでした! 私にこれを指摘してくれてありがとう。 – Bacteries

+0

それは助けて嬉しいよ! – Val

関連する問題