elasticsearchクエリにこのSQLクエリをどのように変換する必要がありますか?elasticsearchフィルタ/クエリ内の複数のbool句
SELECT * FROM myTable WHERE (id = 99 AND isonline <> 1) OR (id = 98 AND isonline <> 0)
複数のブールフィルタを持つクエリを作成するにはどうすればよいですか。 (ボーナスは、NESTでそれを行う方法を示すことにもなります)
重複したオブジェクトキーが含まれているので私が思いついた弾力的なクエリは機能しません。
{
"size": 1000,
"query": {
"match_all": {}
},
"filter": {
"bool": {
"must": [
{
"term": {
"id": 99
}
}
],
"must_not": [
{
"term": {
"isonline": true
}
}
]
},
"bool": {
"must": [
{
"term": {
"id": 98
}
}
],
"must_not": [
{
"term": {
"isonline": false
}
}
]
}
}
}
elasticsearchバージョン1.7
それは私やあなたの 'WHERE'文は意味がありませんか? '(id = 99 AND isonline <> 1)AND(id = 98 AND isonline <> 0)' idは99と98の両方です... –
@AndreiStefanあなたが正しいことは申し訳ありません。私は 'OR'を使って 'OR'を使ってクエリを編集しましたが、これは私が意図したものでした。基本的に私はIDとisonlineのステータスと照合したいです。見つけたいアイテムごとにこれらの条件が適用されます。 – darren
Hehe、今、意味があります。私は私の答えを更新しました。 –