Купа сено на Django, включително свързано съдържание и също така го повишава

Играя си с django-haystack и се опитвам да го внедря с elasticsearch (всъщност вече го направих). Моят модел има title, content и също поле tags, което е 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 %}

person Romeo Mihalcea    schedule 08.03.2014    source източник


Отговори (1)


Можете да добавите многостранно поле за таговете и да го попълните и увеличите по време на индексиране. Във вашия модел PostIndex:

tags = FacetMultiValueField(boost = 2)

и

def prepare_tags(self, obj):
    return [t.name for t in obj.tags.all()] 
person Oliver    schedule 10.03.2014
comment
Все още не получавам тласък за съжаление. - person Romeo Mihalcea; 12.03.2014