Подсветка в солре с питоном - PullRequest
0 голосов
/ 21 марта 2019

Если я хочу добиться функции выделения Solr в Django с python , как это можно сделать с помощью пакета solrpy ?

Как с этим справился solrpy , поскольку результаты подсветки находятся в абсолютном фрагменте объекта SolrResponse , представленного в виде словаря словарей.

Более того, solrpy по-прежнему работает для дополнительных функций solr , таких как гранение, выделение и прочее, помимо основного запроса

sc = solr.SolrConnection("http://localhost:8080/solr/cases")
response_c=sc.query('name:*%s'%q+'*',fields='name,decision_date', highlight='name')

print(response_c.results)
for hit in response_c.results:
  print(hit)

И почемуПриведенный выше код не работает для достижения выделения?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Информация выделения выделяется в отдельной записи с именем highlighting в объекте ответа:

If you pass in `highlight` to the SolrConnection.query call,
then the response object will also have a "highlighting" property,
which will be a dictionary.

При этом я настоятельно рекомендую использовать pysolr вместо solrpy, поскольку pysolr поддерживается проектом django-haystack и непрерывно развивается в течение последних нескольких лет по сравнению с solrpy.

0 голосов
/ 21 марта 2019

Да.Приведенный ниже код позволяет выделить (pysolr, версия 3.6.0): поле

import pysolr

solr = pysolr.Solr('http://localhost:8983/solr/<core/collection>')  
results = solr.search('hello', **{
        'hl': 'true',
        'hl.fragsize': 10,
        'hl.field': 'text'
    })

for i in results:
   print(i)
print(results.highlighting)

results.highlighting будет содержать выделенные фрагменты поиска.Другие поля: facets, grouped, hits, spellcheck, stats.Больше информации на https://github.com/django-haystack/pysolr

...