public void getMaxMinPrice(String category, String subcategory) {
var nativeQueryBuilder = new NativeQueryBuilder();
nativeQueryBuilder.withQuery(queryBuilder ->
queryBuilder.bool(boolBuilder ->
boolBuilder.must(mustBuilder -> {
if (category != null) {
mustBuilder.term(termBuilder -> termBuilder.field("category.keyword").value(category));
}
if (subcategory != null) {
mustBuilder.term(termBuilder -> termBuilder.field("subcategory.keyword").value(subcategory));
}
return mustBuilder;
})));
nativeQueryBuilder.withAggregation("max_price", Aggregation.of(aggBuilder ->
aggBuilder.max(maxBuilder -> maxBuilder.field("price"))));
nativeQueryBuilder.withAggregation("min_price", Aggregation.of(aggBuilder ->
aggBuilder.min(minBuilder -> minBuilder.field("price"))));
}
该异常将在nativeQueryBuilder.withQuery方法中的某个位置引发。使用ElasticSearch模板。
1条答案
按热度按时间2izufjch1#
这对我来说是不可复制的。我把你的代码放在一个小的scratch程序中,并添加了一个变量(
query
),以在以下位置设置断点:停在
query.getQuery
行并检查query
变量,一切都设置正确,没有错误:所以你看到的错误一定是来自其他地方。我使用的是当前发布的5.0版本。
在异常创建时放置调试器断点,并查看此错误的来源。