elasticsearch - N1QL和ElasticSearch加入

标签 elasticsearch n1ql

我的文件是:

Iwp::1::Porcentaje::Period::1
{
  "id": null,
  "period": 1,
  "type": "IwpCumulative",
  "category": "Porcentaje",
  "sumEarn": 0,
  "sumActual": 0.2248520710059172,
  "sumForecast": 0,
  "sumPlanned": 0,
  "sumValue": 0,
  "parent": "Iwp::1"
}

Iwp::1
{
  "name": "Iwp 1",
  "description": "Iwp 1 Description",
  "manyPeriods": 50,
  "type": "Iwp",
  "countCC": 0,
  "costCode": [
    "CostCode::3",
    "CostCode::4"
  ],
  "iwpCumulatives": [
    "Iwp::1::Porcentaje::Period::1",
     .......
    "Iwp::1::Porcentaje::Period::50",
    "Iwp::1::Qty::Period::1",
........
    "Iwp::1::Qty::Period::50",
  ]
}

我如何在ElasticSearch上执行此查询?

N1QL:
select 
t.category,
t.period,
sum(t.sumActual) 
from 
default as q 
inner join default as p on keys q.parent 
inner join default as t on keys p.iwpCumulatives 
where
q.type = 'IwpCumulative' 
and q.period = 50
and q.sumActual > 0 
and q.category = 'Porcentaje' 
group by t.category,t.period
order by t.period,t.category;

我在ElasticSearch上有以下查询:
{
    "query":{
    "filtered":{
           "query":{
               "bool":{
                    "must":[
                        {"term":{"period":"5"}},
                        {"term":{"type":"iwpcumulative"}},
                        {"range":{"sumActual":{"gt":"0"}}},
                        {"term":{"category":"porcentaje"}}
                        ]
                }
            }
    }
    }
}

还有这个:
{
   "size":0,
   "aggs":{
      "group_by_state":{
         "terms":{
            "field":"category"
         },
         "aggs":{
            "costars":{
               "terms":{
                  "field":"period"
               },
               "aggs":{
                  "Suma":{
                     "sum":{
                        "field":"earn"
                     }
                  }
               }
            }
         }
      }
   }
}

现在,我需要使用第一个结果及其ID,以便在第二个查询中使用。

提前致谢。

最佳答案

因为只使用一张表会产生选择项(半联接),所以可以将siren-join插件用于elasticsearch:
看这个 :

SIREn Plugin to add relational join capabilities to Elasticsearch

关于elasticsearch - N1QL和ElasticSearch加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31731412/

相关文章:

elasticsearch - NEST - 以原子方式更改别名以指向另一个索引

ruby-on-rails - Rails 5 Search Facets 过滤器

authentication - 使用Elastic Search X-Pack进行最终用户身份验证

arrays - ElasticSearch-Kibana:按键过滤数组

couchbase - 从嵌套的子文档 Couchbase 中选择特定字段

java - 如何在Java中生成 Elasticsearch 嵌套聚合?

java - 用 Java 编写基本的 n1ql 查询

Couchbase N1QL : How to get complete Document including ID and CAS with SELECT

java - 在 Couchbase 中调用删除文档(带分页)时的 Spring Data "TimeoutException"