我使用的是Oscar 2.0和ElasticSearch 2.4.6的默认设置,但是,构面生成的价格范围数据始终禁用为零计数,其他与字段(评分和产品类别)相关的数据也可以
我注意到self.results.facet_counts()的输出只是在计算有价格的商品数量,而不使用提供的范围查询,但是search_query()下的quert_facets信息看起来不错,显示所需的查询范围
self.results.facet_counts() screenshot
Search_QuerySet.quert_facets screenshot
# Search facets
OSCAR_SEARCH_FACETS = {
'fields': OrderedDict([
('product_class', {'name': _('Type'), 'field': 'product_class'}),
('rating', {'name': _('Rating'), 'field': 'rating'}),
]),
'queries': OrderedDict([
('price_range',
{
'name': _('Price range'),
'field': 'price',
'queries': [
# This is a list of (name, query) tuples where the name will
# be displayed on the front-end.
(_('0 to 20'), '[0 TO 20]'),
(_('20 to 40'), '[20 TO 40]'),
(_('40 to 60'), '[40 TO 60]'),
(_('60+'), '[60 TO *]'),
]
}),
]),
}