Solr的:刻面与两个输出一个场(Solr: Facet one field with two ou

2019-10-18 11:17发布

我使用Solr的索引的产品和他们组织成几类。 每个文档具有taxon_names多值字段,其中,所述类别被存储为用于产品人类可读的字符串。

现在,我想从Solr中获取所有类别,并点击链接到用户显示它们, 而无需再次命中数据库 。 在索引时间,我得到了来自MySQL数据库,并存储为一个多值字段每个类别的永久链接taxon_permalinks 。 为了生成链接到的产品,我需要的类别(适用于空间,否则,你会在你的浏览器,丑陋的网址,只需使用类别的普通人类可读的名字的时候,比如%20)人类可读的格式和固定链接。

当我做一个小的搜索http://localhost:8982/solr/default/select?q=*%3A*&rows=0&wt=xml&facet=true&facet.field=taxon_names ,我得到人类可读的分类群中,其计数列表。 基于此名单上,我要创建的链接,这样我就不必再访问数据库。

那么,是不是可以检索从Solr的匹配固定链接为不同的类别? 例如,我得到这样的XML:

<response>
<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
</lst>
<result name="response" numFound="6580" start="0"/>
  <lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
  <lst name="taxon_names">
    <int name="Books">2831</int>
    <int name="Music">984</int>
      ...
  </lst>
</result>

而且内侧taxon_names阵列我需要的永久链接的名称。

也许它通过在config个XML定义自定义字段类型是可能的。 但对于这一点,我没有使用Solr足够的经验。

Answer 1:

因为它从你的描述,你是在小面出现永久taxon_permalink领域,在该领域中的值应该对应于同一个类别名称taxon_names场。 Solr的让你刻面的多个领域,所以你可以在面这两个领域,步行两分方面的结果敛显示名称从taxon_names方面值,并从该永久taxon_permalink方面值。

查询:

 http://localhost:8982/solr/default/selectq=*%3A*&rows=0&wt=xml
   &facet=true&facet.field=taxon_names&facet.field=taxon_permalink

然后,您的输出应该看起来像类似以下内容:

<response>
<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">0</int>
</lst>
<result name="response" numFound="6580" start="0"/>
  <lst name="facet_counts">
  <lst name="facet_queries"/>
  <lst name="facet_fields">
  <lst name="taxon_names">
    <int name="Books">2831</int>
    <int name="Music">984</int>
      ...
  </lst>
  <lst name="taxon_permalink">
    <int name="permalink1">2831</int>
    <int name="permalink2">984</int>
      ...
  </lst>
</result>


文章来源: Solr: Facet one field with two outputs