/ / Il pagliaio di Django, incluso il contenuto correlato e anche per potenziarlo - django, django-pagliaio

Django haystack incluso contenuto correlato e anche aumentandolo - django, django-haystack

Sto giocando con django-pagliaio e sto cercando di implementarlo con elasticsearch (l'ho già fatto). Il mio modello ha title, content e anche a tags campo che è a ManyRelatedManager:

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

Il mio oggetto indice di ricerca è costruito come segue:

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" )

La mia prima domanda è ... come posso includere i tag in PostIndex oggetto? Voglio dare ai tag una spinta molto più alta rispetto al titolo e al contenuto.

post_text.txt modello:

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

risposte:

0 per risposta № 1

È possibile aggiungere un campo multi-sfaccettatura per i tag e popolarlo e potenziarlo al momento dell'indicizzazione. Nel tuo modello PostIndex:

tags = FacetMultiValueField(boost = 2)

e

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