索引中有两个字段。让我们假设为字段 1 和字段 2。
-
检索案例
- 两者都可能出现
- 字段 1 或字段 2 可能出现
- Fiels1 和 Field 2 可能会出现
在这里,我必须创建一个查询,例如
- 如果字段 1 存在,则对其应用搜索并忽略字段 2
- 如果字段 1 不存在,则在字段 2 上应用搜索
- 如果两者都存在,则仅在字段 1 上应用搜索,忽略字段 2
有人可以帮忙查询吗
我认为您正在寻找的是 1should
,由 3 个must
s 组成:
GET conditionals/_search
{
"query": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"exists": {
"field": "field1"
}
},
{
"match": {
"field1": "abc"
}
}
]
}
},
{
"bool": {
"must": [
{
"bool": {
"must_not": [
{
"exists": {
"field": "field1"
}
}
]
}
},
{
"match": {
"field2": "xyz"
}
}
]
}
},
{
"bool": {
"must": [
{
"bool": {
"must": [
{
"exists": {
"field": "field1"
}
},
{
"exists": {
"field": "field2"
}
}
]
}
},
{
"match": {
"field2": "xyz"
}
}
]
}
}
],
"minimum_should_match": 1
}
}
}