【问题标题】:Is there any way to join attributes between same object in Elastic seach?有没有办法在 Elasticsearch 中的同一对象之间连接属性?
【发布时间】:2020-05-07 06:25:10
【问题描述】:

我有一个索引,可以根据 ID 为我提供 JSON 配置文件。在 JSON 中,我有两个不同的对象键,一个键作为具有 address_id 的 primary_address 对象,另一个键作为 Address 对象。地址身份证。 我想在两个对象的 address_id 之间添加一个连接来过滤数据。

试过了

QueryBuilders.boolQuery().must(QueryBuilders.matchAllQuery())
                            .filter(QueryBuilders.existsQuery(fieldName))
                            .filter(QueryBuilders.scriptQuery(new Script("doc['primary_address.id'].value == doc['addresses.addr_id'].value")))
                            .filter(setQuery);

但它没有获取任何结果。任何指针将不胜感激。

【问题讨论】:

    标签: java elasticsearch elasticsearch-5


    【解决方案1】:

    此查询有效。您可以尝试单个 bool 过滤器查询。

    GET your_index/_search
    {
      "query": {
        "bool": {
          "filter": {
            "script": {
              "script": {
                  "source": "doc['f1'].value == doc['f2'].value",
                  "lang": "painless"
                },
                "boost": 1
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-02
      • 2019-08-23
      • 2011-11-05
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多