elasticsearch中的子查询

时间:2015-10-13 05:04:53

标签: elasticsearch

我有一个mysql查询。我如何在elasticsearch中建模此查询? 查询是 -

select targetId from mytable where actorId=? and targetId in (select actorId from mytable where targetId = ?)

mytable只有两列actorId和targetId。
目前我分别运行内部查询并将结果传递给外部查询。有没有办法一次性完成。我的弹性搜索查询如下。

{
"filtered" : {
    "query" : {
     "match_all" : { }
    },
    "filter" : {
      "bool" : {
        "must" : [ {
          "term" : {
            "actorId" : 3432079
          }
        }, 
        {
          "not" : {
            "filter" : {
              "terms" : {
                "targetId" : [3435089, 3435093]
              }
            }
          }
        }]
      }
    }
  }
}


编辑:
而不是上面我想做如下

{
    "filtered" : {
        "query" : {
         "match_all" : { }
        },
        "filter" : {
          "bool" : {
            "must" : [ {
              "term" : {
                "actorId" : 3432079
              }
            }, 
            {
              "not" : {
                "filter" : {
                  "terms" : {
                    "targetId" : (inner query which returns target ids)
                  }
                }
              }
            }]
          }
        }
      }
    }

0 个答案:

没有答案