我正在使用Elasticsearch Java v0.93迁移到Grails应用程序到版本5.5.3。我面临的挑战之一是将Facet Filter迁移到类似的Aggregation。
以下是早期版本的Elasticsearch Java API中的代码:
FacetBuilders
.termsFacet("f").field("brand").size(50) // Your facet
.allTerms(true)
.facetFilter( // Your filter here
FilterBuilders.boolFilter()
);
根据Elasticsearch Java API,“Facets已被删除,建议使用filter aggregation或filters aggregation。
谢谢!
请尝试以下查询将facets
迁移到Aggregation
AggregationBuilders.filter("Filter By Some Property", QueryBuilders.termQuery("some Field", "value"))
.subAggregation(AggregationBuilders.terms("Group By Some Other property").field("brand").size(50));
在这里,您可以在filter
方法中使用任何类型的查询。以Term Query
为例。
希望能帮助到你!!