暂时禁用 Python 的 FacetedSearch 中的分面

Temporarily disable facets in Python's FacetedSearch

我使用 Python 的 Elasticsearch DSL 库创建了我自己的自定义 FacetedSearch class,以在 def search(self) 中执行带有附加过滤的搜索。现在我想重用我的 class 来做一些统计聚合。为了保持 DRY,我想重用这个 class 并且出于性能原因,我想在保留所有过滤的同时暂时禁用不需要的方面计算。所以问题是如何在 FacetedSearch 搜索中暂时省略分面?

那么您只想使用 Search 对象的查询,而不是它的聚合?在那种情况下,只需调用对象的 search() 方法来获取 Search 对象并从那里开始。

如果您想要聚合,但只想跳过 python-level facets 计算,只需使用 build_search 方法获取包含聚合的原始 Search 对象.