1

我正在使用 solr4,我在分组时遇到了一些问题。这是我用于分组的查询

http://****/solr.war/collection1/select?q=name%3Awhat%26a%26girl%26wants&fl=name%2Cprice%2Cupc&wt=xml&indent=true&group=true&group.ngroups=true&group.facet=true&group.field=upc&group.sort=price+asc

这是那个的o/p

<lst>
    <str name="groupValue">085391170112</str>
    <result name="doclist" numFound="1" start="0">
      <doc>
        <str name="name">What a Girl Wants/Chasing Liberty - DVD</str>
        <str name="upc">085391170112</str>
        <float name="price">9.99</float></doc>
    </result>
  </lst>
  <lst>

'numFound' 在这里是 1 但是当我复制那个 'upc' 并使用以下查询搜索它时

http://*****/solr.war/collection1/select?q=upc%3A085391170112&fl=name%2Cupc&wt=xml&indent=true

.

<result name="response" numFound="2" start="0">
  <doc>
    <str name="name">What a Girl Wants/Chasing Liberty - DVD</str>
    <str name="upc">085391170112</str></doc>
  <doc>
    <str name="upc">085391170112</str>
    <str name="name">Sergio Vitier - Visiones Temas Para Cine</str></doc>
</result>

' numFound' 在 upc 搜索中为 2。

我的架构是

<field name="upc" type="string" indexed="true" stored="true" multiValued="false"/>
4

1 回答 1

0

对于第一个查询,

http://****/solr.war/collection1/select?q=name%3Awhat%26a%26girl%26wants&fl=name%2Cprice%2Cupc&wt=xml&indent=true&group=true&group.ngroups=true&group.facet=true&group.field=upc&group.sort=price+asc

你得到 numFound = 1 因为,你的查询

q=name%3Awhat%26a%26girl%26wants

仅根据名称匹配以下文档(不基于“upc”)

  <doc>
    <str name="name">What a Girl Wants/Chasing Liberty - DVD</str>
    <str name="upc">085391170112</str></doc>
  </doc>

另一方面,在您的第二个查询中,

http://*****/solr.war/collection1/select?q=upc%3A085391170112&fl=name%2Cupc&wt=xml&indent=true

您已经搜索了与给定“upc”匹配的所有文档的“upc”,这不会过滤name:what%26a%26girl%26wants的结果。

很明显,计数会有所不同,因为您的 2 个查询有两个不同的结果集。

于 2013-03-15T06:39:19.537 回答