我正在使用Solr为产品编制索引并将它们组织成几个类别。每个文档都有一个taxon_names
多值字段,其中类别存储为产品的人类可读字符串。
现在,我想从Solr中获取所有类别,并使用可点击的链接显示给用户,而无需再次访问数据库。在索引时,我从MySQL数据库中获取每个类别的永久链接,该数据库存储为多值字段taxon_permalinks
。为了生成产品的链接,我需要类别的人类可读格式及其永久链接(否则,当您使用类别的简单可读名称时,您的浏览器中会出现如此丑陋的URL,例如%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
数组中,我需要永久链接的名称。
也许可以通过在配置XML中定义自定义字段类型来实现。但为此,我对Solr没有足够的经验。
答案 0 :(得分:3)
由于您的说明中显示您正在taxon_permalink
字段中进行永久链接,因此该字段中的值应与taxon_names
字段中的相同类别名称相对应。 Solr允许您在多个字段上进行构面,因此您可以只在两个字段上进行构面,并从两个构面结果中获取taxon_names
构面值中的显示名称以及taxon_permalink
构面值的永久链接。 / p>
查询:
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>