干草堆设置重要性水平

时间:2014-06-19 18:41:09

标签: python search solr

我似乎无法在文档中找到它。如何设置每个索引的搜索属性的重要性级别。例如,假设我有一个带有搜索索引NoteIndex的模型Note,

模特:

class Note(models.Model):
     user = models.ForeignKey(User)
     pub_date = models.DateTimeField()
     title = models.CharField(max_length=200)
     body = models.TextField()

索引:

 class NoteIndex(indexes.SearchIndex, indexes.Indexable):
     text = indexes.CharField(document=True, use_template=True)
     body = indexes.CharFiled(model_attr = 'body')
     author = indexes.CharField(model_attr='user')
     pub_date = indexes.DateTimeField(model_attr='pub_date')

我如何设置它以便我的对象被编入索引,使得与作者匹配的查询比具有与body匹配的查询更重要(得分更高),无论查询是多少次与身体相匹配。由于solr正在运行BM25f(不确定)文档相关性搜索,因此可能的解决方案似乎是多次在文本文档中添加作者。但这是一个不优雅的解决方案。

我想知道haystack / python是否能解决这个问题。

1 个答案:

答案 0 :(得分:0)

Mauro的回答让我去寻找“提升”这个术语。在干草堆里。事实证明,haystack支持这一点,我们可以直接在模型中添加提升:

http://django-haystack.readthedocs.org/en/latest/boost.html