Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr面计数错误_Solr_Lucene_Faceted Search_Facet - Fatal编程技术网

Solr面计数错误

Solr面计数错误,solr,lucene,faceted-search,facet,Solr,Lucene,Faceted Search,Facet,我有一个Solr查询,返回大约700000个文档集合的结果。它在具有一个从实例的单个主机上运行 我过滤我的文档并在一个字段(sports_is)上运行切面。但是,单个方面结果的计数、它们作为方面查询的组合以及它们作为fq的应用是不同的。这怎么可能 这是我的fq(非常直截了当): 此方面查询 "facet.query":"sports_is:(117532 OR 117519 OR 117520 OR 117521 OR 117522 OR 117518)" 返回177个结果。 当我将facet

我有一个Solr查询,返回大约700000个文档集合的结果。它在具有一个从实例的单个主机上运行

我过滤我的文档并在一个字段(sports_is)上运行切面。但是,单个方面结果的计数、它们作为方面查询的组合以及它们作为fq的应用是不同的。这怎么可能

这是我的fq(非常直截了当):

此方面查询

"facet.query":"sports_is:(117532 OR 117519 OR 117520 OR 117521 OR 117522 OR 117518)"
返回177个结果。 当我将facet查询作为fq添加到我的查询中时,我还得到177个结果。所以这似乎是正确的计数

但是

如果对单个结果求和(总和为300),则返回更多结果:


怎么可能呢?对单个计数求和与获得累加结果之间的逻辑是否不同?

如果您的数据类型是:

<dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>

这意味着单个文档可以包含多个id。 当您应用过滤器查询时,您计算文档的数量(本例中为177个),但当您在多值字段上刻面时,您会得到字段中标记的数量,这意味着您仍然有177个字段,但其中一些字段可能包含多个id,总计300个


查看此论坛帖子以了解类似问题:

如何计算300?你能详细说明这个过程吗?还有sport_is的字段类型是什么?300是sport_is值117518到117522的总和(这些值也在facet查询中查询)。我打算在上面的方面结果中使用这些。数据类型为“is”,是整数值列表。
"facet.field":"sports_is"
    "facet_fields":{
  "sports_is":[
    "117523",2724,
    "117515",1767,
    "117514",1522,
    "117510",1423,
    "118851",502,
    "117517",473,
    "117516",458,
    "117527",327,
    "117511",297,
    "118863",240,
    "118855",181,
    "118866",175,
    "118865",160,
         "117520",149,
    "118867",97,
    "117509",88,
         "117521",58,
         "117518",42,
    "118854",42,
    "117512",38,
    "117524",38,
    "117513",37,
         "117519",36,
    "118853",17,
    "118856",17,
         "117522",15,
    "118864",9,
    "118868",7,
    "118860",2,
    "118857",1,
    "118862",1,
    "119190",1]}
<dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>