Solr выделение через Scorched в Django
Я пытаюсь вывести выделенный поисковый термин из поиска Solr. Я использую Django 1.8.4 с Scorched.
Я уже активировал подсветку (resp = ('highlighting', self.solr_response.highlighting))
и к поиску-представлению, и мой вывод json из поиска:
"highlighting": {
"f0109b89-4882-44cc-90b2-6a51561d14ee": { }, <!-- nothing here, though the result comes up)
"73bc1fe4-2c4a-4036-9373-242811e3e7d9": { },<!-- nothing here, though the result comes up)
"b7e7a44a-57c4-4378-94fc-273229b0ac7f":
{
"some_field":
[
"Bla bla bla, <em>highlighted search-term</em> bla bla bla..."
]
},
)
Проблема в том, что я не могу найти способ, как сказать системе шаблонов Django для доступа к этому some_field
, так как он находится под content.highlighting
(и его идентификатор находится под result.id
). Конечно content.highlighting.result.id.some_field
не работает - есть ли способ объединения чего-то вроде {{ content.highlighting}} + {{ result.id }}
, чтобы я мог вывести выделенную строку в шаблоне?
1 ответ
В основном, я добавил этот код в представлении:
for d in response:
d['highlighted_string'] = response.highlighting[d['id']]
results_list = response
так что каждый элемент результата, приходящий из solr, содержит подсвеченную строку, соответствующую его собственному идентификатору. Затем в шаблоне result.highlighted_string выводит правильную selected_string, соответствующую этому результату.
Я надеюсь, что это может помочь кому-то еще.