我正在使用Python ElasticSearch DSL库与ElasticSearch集群进行接口。在
我使用库通过基类elasticsearch_dsl.DocType
提供的文档视图模型,并使用DocType.init()
创建索引:
import elasticsearch_dsl as dsl
class SomeDocument(dsl.DocType):
class Meta:
doc_type = some_document
index = some_document
instance = SomeDocument()
instance.init()
但现在我想在Elastic初始化时为这里创建的索引添加一个别名,并更改索引的碎片数。我的代码是:
^{pr2}$我希望SomeDocument
视图模型对其请求使用some_document
索引,尽管some_document
现在是指向索引some_document_v1
的别名。在
当我尝试运行此代码时,我得到:
index some_document_v1 already exists
即使我在调用index.create()
之前检查index.exists()
。如果我清除ElasticSearch实例的数据,服务器就会崩溃并对我发送给它的任何请求作出响应400 Bad Request
。在
我做错什么了?在
找到了我要找的东西:
https://github.com/elastic/elasticsearch-dsl-py/issues/600
结果发现,弹性dsl在这一点上内部变得“太混乱”,无法使用别名进行正确的配置。他们建议,由于消费者拥有所有的部分,所以手动构建结构,而不是让
DocType.init()
为您构建它。在相关问题 更多 >
编程相关推荐