将 ElasticSearch Java API FacetFilter(早期版本)迁移到 ES v5.5.3 中的类似聚合

Migrating ElasticSearch Java API FacetFilter (in early version) to simliar Aggregation in ES v5.5.3

我正在将使用 Elasticsearch Java v0.93 的 Grails 应用程序迁移到版本 5.5.3。我面临的挑战之一是迁移 Facet Filter to a similar 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 or 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 作为示例。

希望对您有所帮助!!