gpt4 book ai didi

django - 如何使用Haystack进行部分字段匹配?

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

我需要一个使用django的网站的简单搜索工具,因此我选择了Haystack和Solr。我已经正确设置了所有内容,并且在键入精确短语时可以找到正确的搜索结果,但是在输入部分短语时却找不到任何结果。

例如:“John”返回“John Doe”,但“Joh”不返回任何内容。

模型:

class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)

搜索索引:
class PersonIndex(SearchIndex):
text = CharField(document=True, use_template=True)
first_name = CharField(model_attr = 'first_name')
last_name = CharField(model_attr = 'last_name')

site.register(Person, PersonIndex)

我猜我缺少一些启用部分字段匹配的设置。我已经在某些论坛上看到有人在谈论 EdgeNGramFilterFactory(),并且已经在Google上对其进行了搜索,但是我不确定它的实现。另外,我希望有一种特定于干草堆的方法,以防万一我退出搜索后端。

最佳答案

您可以通过将索引的文本字段设置为EdgeNgramField来实现该行为:

class PersonIndex(SearchIndex):
text = EdgeNgramField(document=True, use_template=True)
first_name = CharField(model_attr = 'first_name')
last_name = CharField(model_attr = 'last_name')

关于django - 如何使用Haystack进行部分字段匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391631/

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