gpt4 book ai didi

django - Haystack Django一次搜索多个字段

转载 作者:行者123 更新时间:2023-12-03 02:36:35 25 4
gpt4 key购买 nike

使用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”。

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

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

最佳答案

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

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

因此,文本字段包含一个字符串,同时包含两个字段的值,因此在搜索时都像 /search/?text=test一样被搜索。

关于django - Haystack Django一次搜索多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com