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, соответствующую этому результату.

Я надеюсь, что это может помочь кому-то еще.

Другие вопросы по тегам