Lucene Facets - 如何处理 StoreId

问题描述

我们将多个商店的数据存储在同一索引中。 我们想为多个字段创建构面,如类别(分层)、价格、颜色、大小、价格,但我们想计算每个商店 id 的这些构面。 我们永远不会有用例 - 我们想要跨商店计数。

我们如何处理这个用例,我们是将 storeid 添加为我们提供给 facet 的所有值的一部分,还是将所有 facet 声明为分层的,并将 storeid 作为第一级

解决方法

可能有多种方法可以处理此问题,但根据我的经验,我建议您在为构面创建向下钻取查询(以指定您感兴趣的类别层次结构中的级别)并通过该查询时查询 baseQuery,基本查询应包括 storeid 等于特定商店的条件。

从某种意义上说,需要用于特定商店的 storeid 只是另一个查询条件(您碰巧在幕后添加),用于指示客户对哪些产品感兴趣。这与 if 没有太大区别我们还指定只有具有特定颜色的产品才值得关注。