【问题标题】:Django haystack including related content and also boosting itDjango haystack 包括相关内容并提升它
【发布时间】:2014-03-08 01:50:08
【问题描述】:

我正在使用 django-haystack 并尝试使用 elasticsearch 来实现它(实际上我已经这样做了)。我的模型有titlecontenttags 字段,即ManyRelatedManager

tags = models.ManyToManyField( 'Tag', through = 'PostTags' )

我的搜索索引对象构建如下:

class PostIndex( indexes.SearchIndex, indexes.Indexable ):
    text = indexes.CharField( document = True, use_template = True )
    title = indexes.CharField( model_attr = 'title', boost = 1.125 )
    content = indexes.CharField( model_attr = 'content' )
    date_added = indexes.DateTimeField( model_attr = 'date_added' )

我的第一个问题是……如何在PostIndex 对象中包含标签?与标题和内容相比,我想给标签带来更高的提升。

post_text.txt模板:

{{ object.title }}
{{ object.content }}
{% for tag in object.tags.all %}
    {{ tag.name }}
{% endfor %}

【问题讨论】:

    标签: django django-haystack


    【解决方案1】:

    您可以为标签添加一个多方面字段,并在索引时填充和提升它。 在您的 PostIndex 模型中:

    tags = FacetMultiValueField(boost = 2)
    

    def prepare_tags(self, obj):
        return [t.name for t in obj.tags.all()] 
    

    【讨论】:

    • 不幸的是,我仍然没有得到提升。
    猜你喜欢
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2013-11-04
    • 2012-04-21
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多