gpt4 book ai didi

django - 带有 Elasticsearch 的 Haystack 拒绝创建搜索索引

转载 作者:行者123 更新时间:2023-12-02 23:04:14 24 4
gpt4 key购买 nike

我正在使用连接到 Elasticsearch 服务器的 Django(主分支)和 Haystack(主分支)。 Python 版本是 3.4。

搜索索引类如下所示:

class PageIndex(indexes.SearchIndex, indexes.Indexable):
text = fields.EdgeNgramField(document=True)
name = fields.EdgeNgramField(model_attr='name', boost=2)
tags = fields.EdgeNgramField(model_attr='tags', boost=1.5)
description = fields.EdgeNgramField(model_attr='description_summary', boost=0.9)

def get_model(self):
return Page

def index_queryset(self, using=None):
return self.get_model().objects.filter(created__lte=datetime.datetime.now())

当我尝试创建索引时,出现以下错误:
> python manage.py update_index                                                                                                                                                                                                                                             Indexing 7 communities
PUT /haystack [status:400 request:0.013s]
ERROR:root:Error updating page using default
Traceback (most recent call last):
File "/env/lib/python3.4/site-packages/haystack/management/commands/update_index.py", line 221, in handle_label
self.update_backend(label, using)
File "/env/lib/python3.4/site-packages/haystack/management/commands/update_index.py", line 266, in update_backend
do_update(backend, index, qs, start, end, total, self.verbosity)
File "/env/lib/python3.4/site-packages/haystack/management/commands/update_index.py", line 89, in do_update
backend.update(index, current_qs)
File "/env/lib/python3.4/site-packages/haystack/backends/elasticsearch_backend.py", line 158, in update
prepped_data = index.full_prepare(obj)
File "/env/lib/python3.4/site-packages/haystack/indexes.py", line 204, in full_prepare
self.prepared_data = self.prepare(obj)
File "/env/lib/python3.4/site-packages/haystack/indexes.py", line 187, in prepare
ID: get_identifier(obj),
File "/env/lib/python3.4/site-packages/haystack/utils/__init__.py", line 33, in default_get_identifier
obj_or_string._meta.module_name,
AttributeError: 'Options' object has no attribute 'module_name'

最佳答案

您收到此错误消息是因为在 Django >= 1.6 Options.module_name 更改为 .model_name (这是 widley 滥用的非公共(public) API)所以您只需要更改 haystack 代码 module_name

关于django - 带有 Elasticsearch 的 Haystack 拒绝创建搜索索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24295317/

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