我正在尝试搜索多个索引,但是每个索引的字段和映射都不同。就像一个索引具有嵌套路径一样。
当我尝试查询索引时,没有嵌套路径的索引出现错误。
{
"query": {
"bool": {
"should": [
{
"term": {
"a": "good"
}
},
{
"term": {
"a.b": "sample"
}
},
{
"nested": {
"path": "x.y.z",
"query": {
"bool": {
"should": [
{
"term": {
"x.y.z.id.keyword": "test@gamil.com"
}
}
]
}
}
}
}
]
}
}
}
在嵌套路径x.y.z上方仅存在一个索引。
我尝试找到一种解决方案,找到了ignore_unavailable
。但是它将忽略没有嵌套路径的索引,但是我需要该索引中与查询中其他条件匹配的文档。
答案 0 :(得分:0)
通过将your-index
替换为包含嵌套字段的索引的名称来尝试以下查询。
{
"query": {
"bool": {
"should": [
{
"term": {
"a": "good"
}
},
{
"term": {
"a.b": "sample"
}
},
{
"bool": {
"must": [
{
"term": {
"_index": "your-index"
}
},
{
"nested": {
"path": "x.y.z",
"query": {
"bool": {
"should": [
{
"term": {
"x.y.z.id.keyword": "test@gamil.com"
}
}
]
}
}
}
}
]
}
}
]
}
}
}