脚本中的QueryDSL _id查询

时间:2018-06-27 14:16:02

标签: elasticsearch kibana querydsl

我正在使用Elasticsearch&Kibana v5.6,并且在devTools中,我能够在querydsl中使用脚本来查询字段名称=值的文档,即:

GET indexA/_search
{
  "query":{ "script":{ "script": """
     def a = doc['field1'].value;
     return a == 'value1';
  """}}
}

以上将在名为“ field1”的字段中返回所有具有“ value1”作为值的文档。但是我无法在_id上进行搜索,官方文档说,在v6之前,我们应该改用_uid,所以我没有运气尝试过。我使用脚本是因为在能够使用_uid获取_id的值之后,基本上我想做一些类似于以下的值比较:

GET indexA/_search
{
  "query":{ "script":{ "script": """
     def a = doc['field1'].value;
     def b = doc['_uid'].value;
     return a == b;
  """}}
}

我认为devTools是我要执行此操作的地方,而不是其他地方。任何指针都值得赞赏

1 个答案:

答案 0 :(得分:0)

您所指的是Query Id's文档或this one,但在错误的上下文中部署,您需要在 ids 的单独标题中定义ID或将其放置在下面 term 字段 _id