Elasticsearch: フィルターコンテキストで「OR」句を記述するにはどうすればいいですか? 質問する

Elasticsearch: フィルターコンテキストで「OR」句を記述するにはどうすればいいですか? 質問する

ES バージョン 6.7 と互換性のある構文/例を探しています。ドキュメントを見ましたが、これに関する例は見当たらず、説明も十分明確ではありません。それに従ってクエリを記述してみましたが、構文エラーが発生し続けます。SO で以下の質問を見たことがありますが、役に立ちませんでした。

bool クエリの should のフィルター コンテキスト (Elasticsearch)

例がありません。

Elasticsearch の複数の OR フィルター

構文エラーが発生します

"type": "parsing_exception",
"reason": "no [query] registered for [filtered]",
"line": 1,
"col": 31

おそらく、ES の別のバージョン用でしょう。

必要なのは、2 つの「or」条件 (私のは 1rangeと 1ですtermが、あまり重要ではないと思います) を持つ単純な例だけです。両方ともフィルター コンテキストで使用したいと思います (スコアやテキスト検索は気にしません)。

本当に必要なら、私の試みを示すことはできますが (投稿する前に「機密性の高い」(当然) 部分を削除する必要があります)、解析/構文エラーが発生するため、意味がないと思います。努力がまったく示されていない質問は SO にとって悪いものと見なされることは承知していますが、解析も成功していない試みを示すことに論理性はなく、例があれば構文を理解するのに役立ちます。

ベストアンサー1

shouldクエリをクエリ内にラップする必要がありますfilter

{  
   "query":{  
      "bool":{  
         "filter":[{  
            "bool":{  
               "should":[  
                  {  // Query 1 },
                  {  // Query 2 }
               ]
            }
         }]
      }
   }
}

おすすめ記事