Haystack Django一次搜索多个字段

使用elasticsearch(2.x),django-haystack(2.8.0),drf-haystack(1.8.6)我正在建立搜索。一切工作正常,除了我无法同时搜索多个字段。现在,我只能搜索(url)/search/?title=test/search/?text=test之类的特定字段。每个url都以正确的结果响应,但仅针对指定的字段。

期望的结果是/search/?q=test返回标题和文本的两个匹配,以包含搜索查询“ test ”。

下面,我为搜索到的模型添加了搜索索引。

class ModelIndex(indexes.SearchIndex,indexes.Indexable):
    text = indexes.CharField(document=True,use_template=True)
    title = indexes.CharField(model_attr='title',boost=2.5)
    slug = indexes.CharField(model_attr='slug')
    site_id = indexes.IntegerField()

    def get_model(self):
        return Model

    def prepare_text(self,obj):
        return obj.text

    def prepare_site_id(self,obj):
        return obj.site.id

    def index_queryset(self,using=None):
        # Used when the entire index for model is updated.
        return self.get_model().objects.all().filter(date__lte=datetime.datetime.now())
mingfan007 回答:Haystack Django一次搜索多个字段

我使用包含标题和文本字段的模板解决了该问题。 范例(model_text.txt):

{{object.title}}
{{object.text}}

因此,文本字段包含一个字符串,其两个字段均具有其值,因此在进行类似/search/?text=test的搜索时都会被搜索。

本文链接:https://www.f2er.com/3117262.html

大家都在问