Solr通过Django中的Scorched突出显示

时间:2015-09-13 10:15:11

标签: python django solr sunburnt

我正在尝试从Solr搜索输出突出显示的搜索词。我正在使用带Scorched的Django 1.8.4。

我已经激活了突出显示(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下(其ID在result.id下)。当然content.highlighting.result.id.some_field不起作用 - 是否有一种方法可以连接{{ content.highlighting}} + {{ result.id }}之类的内容,以便我可以在模板中输出突出显示的字符串?

1 个答案:

答案 0 :(得分:0)

this is how I solved my problem

基本上,我在视图中添加了这段代码:

for d in response:
    d['highlighted_string'] = response.highlighting[d['id']]
results_list = response

以便来自solr的每个结果项包含与其自己的ID对应的highlight_string。然后,在模板中,result.highlighted_string输出与该结果对应的正确的highlighted_string。

我希望它可以帮助别人。