gpt4 book ai didi

python - Django-haystack:添加自动完成所需的 `content_auto` 行后,rebuild_index 失败(haystack.exceptions.SearchFieldError)

转载 作者:太空狗 更新时间:2023-10-30 00:07:48 26 4
gpt4 key购买 nike

我正在尝试为只搜索单词的一部分(如果我没记错的话,根据 Haystack 文档称为 autocomplete)实现生成结果。

示例:

搜索 "gol"

结果 "goldfish"

我尝试了什么?

我按照step 1 of the docs中的要求做了,我在索引类中添加了以下行:

content_auto = indexes.EdgeNgramField(model_attr='content')

然后做了python manage.py rebuild_index .

重建索引却产生了错误 haystack.exceptions.SearchFieldError: The model '<Person: Reginald>' does not have a model_attr 'content'.Reginald作为我的索引表中的第一个条目和 Person作为我索引的模型。

现在我的模型确实没有名为 content 的字段但正如文档中所示,它不需要有这样的字段。

我正在使用 Whoosh 2.4.1 , Django-haystack 1.2.7Django 1.4 .

最佳答案

这就是我现在解决这个问题的方法。

代替:

content_auto = indexes.EdgeNgramField(model_attr='content')

使用:

content_auto = indexes.EdgeNgramField(use_template=True)

然后你可以为这些创建一个模板。例如,我的 catalog 应用程序中有一个 ItemIndex,我想在其中搜索 namedescription。因此,我在 templates/search/indexes/catalog/ 中创建了一个名为 item_content_auto.txt 的文件,其中包含以下内容:

{{ object.name }}
{{ object.description }}

这似乎按照我想要的方式运行。比 'content' 工作更乏味,但应该足够了。

关于python - Django-haystack:添加自动完成所需的 `content_auto` 行后,rebuild_index 失败(haystack.exceptions.SearchFieldError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479224/

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