如何使用Pysolr进行方面搜索

时间:2018-06-06 12:14:57

标签: python solr pysolr

当我们使用curl或urlopen与facet执行查询时,我们得到一个包含3个元素的嵌套字典 1. responseHeader 2. response 3. facet_counts

我想在使用Pysolr搜索时显示facet_counts。它只显示查询输出的“响应”值。我正在尝试以下代码,请帮助。

import pysolr
conn = pysolr.Solr('http://localhost:8983/solr/')
result = conn.search('enron', **{
    'fl' : 'body',
    'facet' : 'on'
})   
for r in result:
    print r

1 个答案:

答案 0 :(得分:1)

当您在result变量上进行迭代时,您将迭代pysolr自己的Results object(而不是直接通过Solr所示的JSON结构)

import pysolr
import pprint

conn = pysolr.Solr('http://localhost:8080/solr/corename')
result = conn.search('*:*', **{
    'fl': 'content',
    'facet': 'true',
    'facet.field': 'field_name'
})   

pprint.pprint(result.facets)

任何构面都将出现在此结果对象的facets属性下。

以上示例输出:

{'facet_dates': {},
 'facet_fields': {'field_name': ['value', 54439, 'value2', 21179]},
 'facet_intervals': {},
 'facet_queries': {},
 'facet_ranges': {}}