查询多个索引但限制单个索引的结果-Elasticsearch 6.x

时间:2019-09-23 22:00:57

标签: elasticsearch kibana

全部,我正在使用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
            }
          }
        }
      ]
    }
  }
}

0 个答案:

没有答案