【发布时间】:2015-02-23 15:53:10
【问题描述】:
我正在使用 Haystack 2.3.0,并且我的搜索索引如下:
class MyModelIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.EdgeNgramField(model_attr='name', boost=1.250)
short_description = indexes.CharField(model_attr='short_description', null=True, boost=1.125)
description = indexes.CharField(model_attr='description', null=True, boost=1.125)
detail_description = indexes.CharField(model_attr='detail_description', null=True)
def get_model(self):
return MyModel
我只想突出显示字段 detail_description。我读过official documentation 这个例子:
sqs = SearchQuerySet().filter(content='foo').highlight()
result = sqs[0]
result.highlighted['text'][0]
但是当我尝试这样做时,我没有得到相同的结果。在上面的示例中,result.highlighted 似乎是一个字典,您可以在其中访问每个字段的突出显示:
result.highlighted['text'][0]
但在我的示例中,当我这样做时,result.highlighted 不是字典,它是一个列表,并且只返回 text 字段的突出显示。
- 如何将突出显示设置为具体字段?
【问题讨论】:
标签: django elasticsearch highlight django-haystack