Ich habe ein MultivaluedField zu meinem Index hinzugefügt (Heuhaufen), ich muss nach einem ManyToMany verwandten Feld suchen, aber es funktioniert nicht.Django Heuhaufen mehrwertig funktioniert nicht
Der Motor ist WHOOSH. Diese
wie mein Index wie folgt aussieht:
class PostIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='author')
body = CharField(model_attr='body')
pub_date = DateTimeField(model_attr='publish')
regions = MultiValueField()
def prepare_regions(self, obj):
return [region.name for region in obj.regions.all()]
Und das, wie mein Modell sieht so aus:.
class Post(models.Model):
title = models.CharField(_('title'), max_length=200)
author = models.ForeignKey(User, blank=True, null=True)
body = models.TextField(_('body'),)
allow_comments = models.BooleanField(_('allow comments'), default=True)
publish = models.DateTimeField(_('publish'), default=datetime.datetime.now)
categories = models.ManyToManyField(Category, blank=True)
tags = TagField()
objects = PublicManager()
regions = models.ManyToManyField(Region, blank=True)
Wenn ich SearchQuerySet() verwenden Filter (region__in = words_list) es funktioniert. Das Problem ist, dass ich nicht weiß, wenn der Benutzer nach einer Region oder einem anderen Feld sucht, also muss ich SearchQuerySet() verwenden. Filter (content__icontains = words_list). Und auf diese Weise wird nichts gefunden.
Danke
Danke !!
haben Sie Regionen Feld Ihre Index Vorlage hinzufügen? – soField
Versuchen Sie es mit [Solr] (http://lucene.apache.org/solr/). Viel, viel schneller. –
Was ist nur hinzufügen '{{object.regions.all | beitreten: ""}} 'in der Vorlage von' Text' Feld? – maciek