Как сделать фасетный поиск с Pysolr - PullRequest
0 голосов
/ 06 июня 2018

когда мы используем curl или urlopen с фасетом для выполнения запросов, мы получаем вложенный словарь с 3 элементами 1. responseHeader 2. response 3. facet_counts

Я хочу показать facet_counts при использовании поиска Pysolr.Он просто показывает значение «response» результата запроса.Я пытаюсь следующий код, пожалуйста, помогите.

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 голосов
/ 06 июня 2018

Когда вы перебираете переменную result, вы перебираете свой собственный объект Pysolr (а не непосредственно через структуру JSON, как показано в Solr).

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': {}}
...