我花了几个小时四处寻找解决问题的方法。我见过人们提出的问题与我想要完成的任务很接近,但到目前为止,似乎没有人提出同样的问题。让我看看我是否可以充分解释这一点:
假设我是一家鞋店。在我的网站上,我有三页:一页是男鞋,一页是女鞋,一页是童鞋。假设我的鞋桌有字段 prod_group。因此,对于男士页面,查询将是 q=prod_group:men。现在让我们说我想提供的方面之一是品牌。q=prod_group:men&filter.field=brand
我遇到的问题是方面结果显示了我数据库中的所有品牌,而不仅仅是与男鞋相关的品牌。也就是说,我已经知道“我的小马驹”系列中的男鞋是零。我不想在品牌方面显示 My Little Pony。设置 facet.mincount 也不是我需要的。如果我运行查询 q=prod_group:men&fq=color:red&filter.field=brand,客户希望向消费者展示“Mighty Joe”品牌没有任何红鞋,所以我仍然需要具有方面计数的方面0。
基本上我希望的是基于基本查询结果的方面结果。到目前为止,我看到完成此操作的唯一方法是运行两个查询:第一个仅使用基本查询并设置 facet.mincount = 1 以获取相关方面的列表,然后将 facet.mincount 的实际查询返回 0 所以我可以根据已经做出的方面选择确定何时将不再可用的某些选项变灰。
运行两个查询似乎不太优雅。从长远来看,facet.pivot 可能会有所帮助,但我们仍在使用 3.x,而且我认为这种情况不会很快改变。我是否错过了一些查询/模式/配置选项,这些选项可以满足我对一个查询的需求?