Elasticsearch 通配符匹配多个字段
Elasticsearch wildcard matching on multiple fields
我有一些字符串 s,我想与两个字段中的至少一个匹配,作为子字符串 (s)。因此,例如,如果我有字符串 456,我想搜索在两个指定字段中的至少一个字段中存在字符串 456 的任何条目。因此,如果 field1 有 1234567,它将匹配,或者如果 field2 有 34567 ,它会匹配。以下是我迄今为止尝试过的一种方法,但没有成功。
query: {
bool: {
should: { wildcard: { field1: "*" + input + "*"}},
should: { wildcard: { field1: "*" + input + "*"}}
}
}
我也试过了
query: {
query_string: "*" + input + "*",
fields: ["field1", "field2"]
}
我想你需要的是:
{
"query": {
"bool": {
"should": [
{
"wildcard": {
"field1": "*"+"input"+"*"
}
},
{
"wildcard": {
"field2": "*"+"input"+"*"
}
}
]
}
}
}
我有一些字符串 s,我想与两个字段中的至少一个匹配,作为子字符串 (s)。因此,例如,如果我有字符串 456,我想搜索在两个指定字段中的至少一个字段中存在字符串 456 的任何条目。因此,如果 field1 有 1234567,它将匹配,或者如果 field2 有 34567 ,它会匹配。以下是我迄今为止尝试过的一种方法,但没有成功。
query: {
bool: {
should: { wildcard: { field1: "*" + input + "*"}},
should: { wildcard: { field1: "*" + input + "*"}}
}
}
我也试过了
query: {
query_string: "*" + input + "*",
fields: ["field1", "field2"]
}
我想你需要的是:
{
"query": {
"bool": {
"should": [
{
"wildcard": {
"field1": "*"+"input"+"*"
}
},
{
"wildcard": {
"field2": "*"+"input"+"*"
}
}
]
}
}
}