ElasticSearchでの複数の「一致フレーズ」クエリ



Multi Match Phrasequery Elastic Search



解決:

同じフィールド名を2回使用するため、最初のクエリは実際には有効なJSONオブジェクトではありません。

bool mustクエリを使用して、両方のフレーズに一致させることができます。



PUTphrase / doc / 1 {'text': 'St Peter Fm some other text Cape Basin'} GETphrase / _search {'query':{'bool':{'must':[{'match_phrase':{'text ':' St Peter Fm '}}、{' match_phrase ':{' text ':' Cape Basin '}}]}}}} 

のフレーズセマンティクスを有効にすることで、これを実行できることがわかりました。multi_match。

これを行うには、を追加しますタイプ:属性以下のようなmulti_match構文:



GET / _search {'query':{'multi_match':{'query': 'quick brown fox'、 'type': 'phrase'、 'fields':['subject'、 'message']}}}

そのように考えると(他の検索句で「マルチ」サポートを有効にするのではなく)、期待する場所に収まります。

参照:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/query-dsl-multi-match-query.html#type-phrase