Solr的。分面的搜索理解

时间:2014-01-14 14:09:25

标签: java solr faceted-search facet

我无法理解分面搜索的结果。

我索引了两个文件:

1:

<add>
<doc>
  <field name="id">SOLR1000</field>
  <field name="name">Solr, the Enterprise Search Server</field>
  <field name="manu">Apache Software Foundation</field>
  <field name="cat">software</field>
  <field name="cat">search</field>
  <field name="cat">XXX</field>
  <field name="cat">XXX</field>
  <field name="features">Advanced Full-Text Search Capabilities using Lucene</field>
  <field name="features">Optimized for High Volume Web Traffic</field>
  <field name="features">Standards Based Open Interfaces - XML and HTTP</field>
  <field name="features">Comprehensive HTML Administration Interfaces</field>
  <field name="features">Scalability - Efficient Replication to other Solr Search Servers</field>
  <field name="features">Flexible and Adaptable with XML configuration and Schema</field>
  <field name="features">Good unicode support: h&#xE9;llo (hello with an accent over the e)</field>
  <field name="price">0</field>
  <field name="popularity">10</field>
  <field name="inStock">true</field>
  <field name="incubationdate_dt">2006-01-17T00:00:00.000Z</field>
</doc>
</add>

2:

<add><doc>
  <field name="id">3007WFP</field>
  <field name="name">Dell Widescreen UltraSharp 3007WFP</field>
  <field name="manu">Dell, Inc.</field>
  <!-- Join -->
  <field name="manu_id_s">dell</field>
  <field name="cat">electronics</field>
  <field name="cat">monitor</field>
  <field name="features">30" TFT active matrix LCD, 2560 x 1600, .25mm dot pitch, 700:1 contrast</field>
  <field name="includes">USB cable</field>
  <field name="weight">401.6</field>
  <field name="price">2199</field>
  <field name="popularity">6</field>
  <field name="inStock">true</field>
  <!-- Buffalo store -->
  <field name="store">43.17614,-90.57341</field>
</doc></add>

我简单的方面要求:

http://localhost:8983/solr/collection1/select/?indent=on&q=*:*&fl=name&facet=true&facet.field=cat

回应的有趣部分:

<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="cat">
<int name="XXX">1</int>
<int name="electronics">1</int>
<int name="monitor">1</int>
<int name="search">1</int>
<int name="software">1</int>
</lst>
</lst>
<lst name="facet_dates"/>
<lst name="facet_ranges"/>
</lst>
</response>

我不明白这是什么意思。如果你能清楚地解释一下 - 我会非常乐于助人。

明显不清楚

 <int name="XXX">1</int>

如何更改为

<int name="XXX">2</int>

1 个答案:

答案 0 :(得分:2)

只有一个索引项与cat=XXX匹配。您在其中一个上添加了两次这一事实并没有什么不同。

在您向Solr提出的请求中,您选择在字段cat上进行分面,因此响应将在lst字段中包含cat元素分面。

该列表中的每个int元素都包含与不同类别匹配的项目的数量。因此,所有类别XXX,电子产品,显示器,搜索和软件各自匹配一个项目。

如果您要将<field name="cat">XXX</field>添加到第二项,则会在响应中获得<int name="XXX">2</int>