首页 > 解决方案 > 如何使用 queryBuilders.wrapperQuery base64 编码字符串

问题描述

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

我发现我可以使用 wrapperQuery 方法,所以我写了这段代码:

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

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

在此处输入图像描述

这种方法工作正常,作为文档中的描述(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wrapper-query.html

问题是,这个查询不起作用。

在此处输入图像描述

出了什么问题,我该怎么办?

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

标签: elasticsearch

解决方案


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

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

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


推荐阅读