django - 弹性搜索模型init()引发关键错误
问题描述
根据文档,我用我的一些模型字段创建了类,以便稍后执行搜索。我还使用默认参数创建了连接。但我不能调用 init()UserIndex
from elasticsearch_dsl import DocType, Text, Boolean, Date, Keyword
from elasticsearch_dsl.connections import connections
connections.create_connection(hosts=['localhost'], timeout=20)
class UserIndex(DocType):
pk = Text()
phone_number = Text()
nickname = Text()
name = Text()
birth_date = Date()
class Meta:
index = 'user'
命令后UserIndex.init()
我收到一个错误:
File ".../lib/python3.6/site-packages/elasticsearch_dsl/document.py", line 138, in init
i.save(using=using)
File ".../lib/python3.6/site-packages/elasticsearch_dsl/index.py", line 289, in save
current_settings = self.get_settings(using=using)[self._name]['settings']['index']
KeyError: '*'
解决方案
您使用的是什么版本的 elasticsearch-dsl?看起来最新版本(6.3.0)有问题(这个发布的问题看起来很相似)。
回滚到 6.2.1 为我解决了这个错误。
推荐阅读
- kdb - KDB - 使用迭代器的自动函数参数行为
- java - 在 Java/Kotlin 项目中收集自定义文档注释?
- python - 在熊猫中将格式不一致的字符串日期转换为日期时间
- javascript - 如何对对象中的过滤数组进行排序?
- google-bigquery - 为上个月创建具有真/假的列
- javascript - 为什么在函数 javascript 中一切都返回 true?
- python - 使用 IF 条件和 s.str.startswith 时出错
- python - 需要帮助将 python 脚本翻译成 vba
- javascript - 格式化对象并将对象添加到数组的函数无法正常运行
- javascript - 如何通过引用在 2 个 javascript 文件之间传递数组