我有一个用于构建查询的json字符串,我需要将其转换为QueryBuilder。 (ES版本6.3.0)

我发现可以使用wrapperQuery方法,因此编写了以下代码:

String str = cond.getFilter().toString();
QueryBuilder filter = QueryBuilders.boolQuery().must(QueryBuilders.wrapperQuery(str));

这些是 Debug模式下变量的结果:

elasticsearch - 我如何使用queryBuilders.wrapperQuery base64编码的字符串-LMLPHP

这种方法是正确的,因为Docs(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wrapper-query.html)中的解密

问题是该查询无法正常工作。

elasticsearch - 我如何使用queryBuilders.wrapperQuery base64编码的字符串-LMLPHP

有什么问题,我该怎么办?

任何意见,将不胜感激。谢谢。

最佳答案

您的JSON格式似乎有误。由于您的ASSET_IP不是数字,因此它必须是JSON表示形式的字符串。因此,您需要将其如下所示放入JSON中。

{ "ASSET_IP" : "xx.xxx.xxx.xx" }

使用上面的内容更新您的JSON,然后重试。

关于elasticsearch - 我如何使用queryBuilders.wrapperQuery base64编码的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53372805/

10-15 22:18