全部,我正在使用ES 6.7,并尝试从单个索引返回结果,同时查询两个索引( customer,payment ),并针对 user-customers进行条款查找索引。我要来自(客户)的数据的索引比第二个索引具有更多的字段。但是由于某种原因,我只能看到付款指数的结果。 customerName , customerNumber ,状态,地址字段仅存在于客户索引上。但是我只希望具有 totalCredits> 0 (仅在付款索引上存在)的客户按排序数组中的逻辑排序。我尝试添加 _index 过滤器(将此设置为“客户”),但没有帮助。添加源过滤也无济于事。这在 ES 6.7 中可行吗?我是否可以选择将排序数组中的字段添加到付款索引中?还是有其他选择?
ES查询
GET customer,payment/_search
{
"sort": [
{
"customerName": {
"order": "asc",
"unmapped_type": "keyword"
}
},
{
"customerNumber": {
"order": "asc"
}
},
{
"state": {
"order": "asc",
"unmapped_type": "keyword"
}
},
{
"address": {
"order": "asc",
"unmapped_type": "keyword"
}
}
],
"query": {
"bool": {
"filter": [
{
"bool": {
"must_not": [
{
"terms": {
"status": [
"pending"
]
}
}
]
}
}
],
"must": [
{
"terms": {
"customerNumber": {
"index": "user-customers",
"type": "_doc",
"id": "rennish@emial.com",
"path": "users"
}
}
},
{
"range": {
"totalCredits": {
"gt": 0
}
}
}
]
}
}
}