solr 4.3
这是我的查询请求参数:
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">15</int>
<lst name="params">
<str name="facet">true</str>
<str name="indent">true</str>
<str name="q">*:*</str>
<str name="_">1373713374569</str>
<arr name="facet.field">
<str>{!ex=city}CityId</str>
<str>{!ex=company}CompanyId</str>
</arr>
<str name="wt">xml</str>
<str name="fq">{!tag=city}CityId:729 AND {!tag=company}CompanyId:16122</str>
</lst>
</lst>
这是查询响应“Facet”的内容:
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="CityId">
<int name="11">100171</int>
<int name="1404">89406</int>
<int name="0">77477</int>
<int name="1366">65780</int>
<int name="1362">58092</int>
<int name="729">29213</int>
<int name="798">28975</int>
...
<int name="7262">808</int>
<int name="432">776</int>
<int name="1146">772</int>
<int name="1653">765</int>
<int name="1078">668</int>
<int name="814">667</int>
<int name="2049">402</int>
<int name="456">401</int>
<int name="401">390</int>
</lst>
<lst name="CompanyId">
<int name="16122">971</int>
<int name="69">0</int>
<int name="71">0</int>
<int name="72">0</int>
<int name="79">0</int>
<int name="80">0</int>
<int name="85">0</int>
<int name="88">0</int>
<int name="94">0</int>
...
<int name="98">0</int>
<int name="104">0</int>
<int name="112">0</int>
<int name="113">0</int>
<int name="118">0</int>
<int name="123">0</int>
<int name="126">0</int>
<int name="131">0</int>
<int name="136">0</int>
<int name="139">0</int>
</lst>
</lst>
<lst name="facet_dates"/>
<lst name="facet_ranges"/>
</lst>
你可以看到CityId的“Facet”是正确的,它排除了{! Tag = city} CityId:729查询,但是CompanyId的“Facet”不正确,他不排除{! Tag = company} CompanyId:16122查询。怎么解决?
答案 0 :(得分:1)
使用:fq = {!tag = city} CityId:729&amp; fq = {!tag = company} CompanyId:16122
答案 1 :(得分:1)
您可以尝试fq=!tag=city}CityId:729&fq={!tag=company}CompanyId:16122
作为单独的标记,它们应该作为AND。