gpt4 book ai didi

spring-boot - 使用源过滤获取Spring Data Elasticsearch Query中的所有非完整字段

转载 作者:行者123 更新时间:2023-12-03 01:15:30 25 4
gpt4 key购买 nike

我们使用本地搜索查询生成器,如下所示:

 String[] includeFields = new String[]{"idDl", "clientName"};
String[] excludeFields = new String[]{"Address"};
Query searchQuery = new NativeSearchQueryBuilder()
.withQuery(matchAllQuery())
.withSourceFilter(new FetchSourceFilter(includeFields, excludeFields))
.build();
return elasticsearchRestTemplate.queryForObject((StringQuery) searchQuery, User.class);
我能够获取所有响应数据,但第一个响应对象是所有空字段,我想在最终响应中排除所有空字段对象。我们正在使用spring-data-elasticsearch 3.2.6.RELEASE,这是示例响应:
   [{
"idDl": null,
"clientName": null,
"Address": null
},
{
"idDl": 19810008,
"clientName": "ABC",
"Address": "NYC"

}]

最佳答案

您应该做的是创建一个查询,该查询将排除那些字段为空值的文档,而不是match_all。改用此查询:

            ...
.withQuery(existsQuery("idDl"))
...
还值得注意的是,仅源过滤不会查看字段的值以检查它们是否为空,如果源文档中存在该字段,它只会按名称返回该字段。

关于spring-boot - 使用源过滤获取Spring Data Elasticsearch Query中的所有非完整字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62717648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com