elasticsearch,pypy,Python,elasticsearch,Pypy" /> elasticsearch,pypy,Python,elasticsearch,Pypy" />

为什么elasticsearch会引发elasticsearch_dsl.exceptions.ValidationException:您不能在pypy上写入通配符索引,但不能在cpython上写入通配符索引?

为什么elasticsearch会引发elasticsearch_dsl.exceptions.ValidationException:您不能在pypy上写入通配符索引,但不能在cpython上写入通配符索引?,python,elasticsearch,pypy,Python,elasticsearch,Pypy,我有一个将数据保存到Elasticsearch的工具。它在Python3.5.2(cpython)中运行良好,但在Pypi36.0.0(Python3.5.3)上运行时会引发异常。你知道为什么吗 File "/opt/venvs/parsedmarc/site-packages/parsedmarc/elastic.py", line 366, in save_forensic_report_to_elasticsearch forensic_doc.save() File "/opt/ve

我有一个将数据保存到Elasticsearch的工具。它在Python3.5.2(cpython)中运行良好,但在Pypi36.0.0(Python3.5.3)上运行时会引发异常。你知道为什么吗

File "/opt/venvs/parsedmarc/site-packages/parsedmarc/elastic.py", line 366, in save_forensic_report_to_elasticsearch
  forensic_doc.save()
File "/opt/venvs/parsedmarc/site-packages/elasticsearch_dsl/document.py", line 394, in save
  index=self._get_index(index),
File "/opt/venvs/parsedmarc/site-packages/elasticsearch_dsl/document.py", line 138, in _get_index
  raise ValidationException('You cannot write to a wildcard index.')
elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index

我们遇到了类似的问题,似乎elasticsearch_dsl在其新版本6.2中将DocType重命名为Document,这破坏了向后兼容性。


要么将您的版本修改为6.1,要么您必须更新为新的文档类型。

我尝试了几种组合,将DocType替换为文档,添加或删除类索引或类元。但是,在任何组合中,索引的名称都保留为空。调试证明了这一点,经过一点调整后,我让它开始工作

这段代码对我很有用:

 class Index:
    # index = 'sample_index'
    name = 'sample_index'
请注意,我并没有尝试将其仅用于名称。此外,它还适用于DocType,但也适用于新的文档类

提及。上述解决方案在螺纹上得到确认。 将其保存在一个位置,前面提到的链接: