特性浏览( Faceted browsing)是 Solr 的一个关键特性。这个功能能够让你的查询结果变得更加有意义。例如一个购物完整可能希望在查询结果中对生产厂商或者价格进行过滤。
特性信息做为 Solr 查询返回结果的第三部分来提供。请单击下面的链接来测试这个特性,在下面的查询中,我们添加了 facet=true 和facet.field=cat 2 个属性。http://localhost:8983/solr/select?q=price:[0%20TO%20400]&fl=id,name,price&facet=true&facet.field=cat在下面的查询结果中,我们可以看到在第一部分还是显示了 responseHeader 和 response,在页面的下面显示了第三部分 facet_counts 的元素。<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
...
</lst>
<result name="response" numFound="9" start="0">
<doc>
<str name="id">SOLR1000</str>
<str name="name">Solr, the Enterprise Search Server</str>
<float name="price">0.0</float></doc>
...
</result>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="cat">
<int name="electronics">6</int>
<int name="memory">3</int>
<int name="search">2</int>
<int name="software">2</int>
<int name="camera">1</int>
<int name="copier">1</int>
<int name="multifunction printer">1</int>
<int name="music">1</int>
<int name="printer">1</int>
<int name="scanner">1</int>
<int name="connector">0</int>
<int name="currency">0</int>
<int name="graphics card">0</int>
<int name="hard drive">0</int>
<int name="monitor">0</int>
</lst>
</lst>
<lst name="facet_dates"/>
<lst name="facet_ranges"/>
</lst>
</response>Facet 的信息显示了在查询结果中显示了在 cart 字段中可能有其他的值。你可以非常容易的使用这些信息来提供给你的用户来进行快速的缩小查询范围。
你可以在 Solr 查询中添加一个或者多个过滤器来过滤返回的结果,下面的查询将会在查询结果中过滤分类 “software”。http://localhost:8983/solr/select?q=price:[0%20TO%20400]&fl=id,name,price&facet=true&facet.field=cat&fq=cat:software
