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