Elasticsearch Kibana 同一字段上的多个通配符条件
Multiple Wildcard conditions on same field in Elasticsearch Kibana
我正在 elasticsearch 中寻找与此等效的东西 -
Select * from users where firstname in ("%abc%" , "%xyz%" ) and city = "Texas"
它有多个匹配条件和一个固定条件CITY。
"query": {
"bool": {
"must": [
{
"wildcard": {
"firstname": "*ABC*"
}
},
{
"wildcard": {
"firstname": "*XYZ*"
}
},
{
"wildcard": {
"city": "Texas"
}
}
]
}
}
我像上面那样尝试,但它不起作用。我能够使它只使用一个通配符参数。但是一旦我尝试为同一字段保留多个结果,我就会得到零结果。
must
是一个 AND
条件。
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"wildcard": {
"firstname": "*ABC*"
}
},
{
"wildcard": {
"firstname": "*XYZ*"
}
}
]
}
},
{
"wildcard": {
"city": "Texas"
}
}
]
}
}
}
因此 SQL in
子句被翻译为 OR
即 should
我正在 elasticsearch 中寻找与此等效的东西 -
Select * from users where firstname in ("%abc%" , "%xyz%" ) and city = "Texas"
它有多个匹配条件和一个固定条件CITY。
"query": {
"bool": {
"must": [
{
"wildcard": {
"firstname": "*ABC*"
}
},
{
"wildcard": {
"firstname": "*XYZ*"
}
},
{
"wildcard": {
"city": "Texas"
}
}
]
}
}
我像上面那样尝试,但它不起作用。我能够使它只使用一个通配符参数。但是一旦我尝试为同一字段保留多个结果,我就会得到零结果。
must
是一个 AND
条件。
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"wildcard": {
"firstname": "*ABC*"
}
},
{
"wildcard": {
"firstname": "*XYZ*"
}
}
]
}
},
{
"wildcard": {
"city": "Texas"
}
}
]
}
}
}
因此 SQL in
子句被翻译为 OR
即 should