Tôi đã thêm một MultivaluedField vào chỉ mục của tôi (haystack), tôi cần phải tìm kiếm một trường liên quan ManyToMany, nhưng nó không hoạt động.Django haystack đa giá trị không hoạt động
Động cơ là WHOOSH.
này như thế nào chỉ số của tôi trông giống như:
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()]
Và điều này như thế nào mô hình của tôi trông giống như:.
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)
Nếu tôi sử dụng SearchQuerySet() lọc (region__in = words_list) nó hoạt động. Vấn đề là tôi không biết khi nào người dùng đang tìm kiếm một vùng hoặc một trường khác, vì vậy tôi phải sử dụng bộ lọc SearchQuerySet(). (Content__icontains = words_list). Và theo cách này không có gì được tìm thấy.
Cảm ơn
Cảm ơn !!
bạn đã thêm lĩnh vực vùng để template index của bạn? – soField
Thử sử dụng [Solr] (http://lucene.apache.org/solr/). Nhiều, nhanh hơn nhiều. –
Còn về việc thêm '{{object.regions.all | tham gia: ""}} 'trong mẫu của trường' văn bản'? – maciek