予有需要從INDEX其中FIELD1 IN( 'A', 'B', 'C')和FIELD2 IN( 'd',「E執行類似查詢以如何在Elastic中的查詢中編寫此代碼?
選擇」, 'F')AND 字段3 IN( 'G', 'H', 'I')
我使用彈性從node.js中以執行該查詢。我已經創建了索引和映射。
感謝您的幫助!
予有需要從INDEX其中FIELD1 IN( 'A', 'B', 'C')和FIELD2 IN( 'd',「E執行類似查詢以如何在Elastic中的查詢中編寫此代碼?
選擇」, 'F')AND 字段3 IN( 'G', 'H', 'I')
我使用彈性從node.js中以執行該查詢。我已經創建了索引和映射。
感謝您的幫助!
我想通了,我寫的查詢爲:
query: {
"bool": {
"must": [
{
"bool": {
"should": [
{"term": {"field1": "a"}},
{"term": {"field1": "b"}}
]
}
},
{
"bool": {
"should": [
{"term": {"field2": "d"}},
{"term": {"state": "e"}}
]
}
}, //........
]
}
}
我需要弄清楚如何動態下一生成此查詢。
一個更簡單的方法是使用terms
query代替:
{
"query": {
"bool": {
"must": [
{
"terms": {
"field1": [ "a", "b", "c" ]
}
},
{
"terms": {
"field2": [ "d", "e", "f" ]
}
},
{
"terms": {
"field3": [ "g", "h", "i" ]
}
}
]
}
}
}
正如你可以從官方文檔閱讀,一個terms
查詢提供了一個簡單的語法,而不是幾個term
一個bool/should
查詢中。