在设置问题之前,我将首先尝试通过在 SOLR 中使用分面搜索来解释我想实现的目标。想象一下,我有一个狗的参数,它描述了狗适合什么,一只狗可以有多种选择。我们称之为“住房”。所以狗适合:
- 在室内
- 户外
- 孩子们
- 老人
- 守护。
所以基本上当我在这个参数上使用分面搜索时,我会用我当前的数据库得到这样的结果(url查询facet=true&facet.field=housing
):
室内(74),户外(63),儿童(71),老人(65),守卫(31)。
现在,当我检查室内参数(url 查询fq=housing:1&facet=true&facet.field=housing
)时,我得到如下结果:
室内(74),户外(53),儿童(60),老人(53),守卫(15)。
它告诉我,如果检查下一个参数“户外”,则有 53 只狗在室内和室外。我想得到结果,它会告诉“如果我检查下一个选项,将有多少只狗被添加到结果中”。因为可能有只适合户外活动的狗。在检查第一个“室内”参数后,我想得到这样的结果:
室内(74),户外(83),儿童(78),老人(79),守卫(75)
或以其他方式在
室内(+0) , 户外(+9), 儿童(+4), 老人(+5), 守卫(+1)
在 SOLR 分面搜索中是否可能出现这种情况?还是我使用了不正确的工具来实现这一点。因为基本上当我检查“室内”和“室外”时,我会从查询(url 查询fq=housing:(1 OR 2)&facet=true&facet.field=housing
)中得到正确的结果计数。只是方面计数不是我所期望的。