在 ElasticSearch 中使用多个字段和条件进行查询
Query with multiple fields and conditions in ElasticSearch
在 ElasticSearch 中,是否可以在一个查询中转换此 SQL?
SELECT * FROM table WHERE state IN ('NY', 'CA', 'FL') AND grade IN ('GOOD', 'BAD') AND active = 'YES' AND quantity > 100 AND quantity < 200
您可以为此使用 filtered
query with a bool
filter
{
"query" : {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"bool" : {
"must" : [{
"terms" : {
"state" : [
"NY",
"CA",
"FL"
]
}
},
{
"terms" : {
"grade" : [
"GOOD",
"BAD"
]
}
},
{
"term" : {
"active" : "YES"
}
},
{
"range" : {
"quantity" : {
"gt" : 100,
"lt" : 200
}
}
}
]
}
}
}
}
}
在 ElasticSearch 中,是否可以在一个查询中转换此 SQL?
SELECT * FROM table WHERE state IN ('NY', 'CA', 'FL') AND grade IN ('GOOD', 'BAD') AND active = 'YES' AND quantity > 100 AND quantity < 200
您可以为此使用 filtered
query with a bool
filter
{
"query" : {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"bool" : {
"must" : [{
"terms" : {
"state" : [
"NY",
"CA",
"FL"
]
}
},
{
"terms" : {
"grade" : [
"GOOD",
"BAD"
]
}
},
{
"term" : {
"active" : "YES"
}
},
{
"range" : {
"quantity" : {
"gt" : 100,
"lt" : 200
}
}
}
]
}
}
}
}
}