使用ex和tag函数Solr多个方面

时间:2015-05-31 21:25:29

标签: function solr facet solr-query-syntax

我正在使用Solr 4.10,我们的要求是有多个方面。应该过滤的每个构面应仅影响所选的构面,而不影响其他构面。

例如,假设有两个方面BRAND和TYPE。当用户选择品牌为尼康时,它应该影响TYPE facet,而不是BRAND facet。类似的行为。

我尝试使用tag和ex函数实现,查询如下所示,

/select?q=query&wt=json&start=0&rows=10&facet=true&fq={!tag=brand}brand:(Canon,Nikon)&fq={!tag=type}type:(TV)&facet.mincount=1&facet.field={!ex=brand}brand&facet.field={!ex=type}type&fl=id,brand,type

这在大多数情况下都能正常工作,但是当结果为零时,Solr会以某种方式返回facet的facet。对于上面的查询,我在类型中获得了一些值,即使响应中没有文档。

以下是我们得到的回复,

{
"response": {
    "numFound": 0,
    "start": 0,
    "docs": []
},
"facet_counts": {
    "facet_queries": {},
    "facet_fields": {
        "type": [
            "TV",
            4
        ],
        "brand": []
    },
    "facet_dates": {},
    "facet_ranges": {},
    "facet_intervals": {}
}

}

0 个答案:

没有答案