Elasticsearch 6中索引的文档类型为_doc
,as is recommended。 elasticsearch-dsl-py的默认文档类型为doc
(缺少下划线)。 This is a known, wont-fix issue.
我有一个文档类型,我相信我已经按照文档中的说明进行了定义:
class MyDoc(Document):
class Meta:
doc_type = "_doc"
class Index:
name = "myindex"
doc_type = "_doc"
Index的文档表明:
doc_type
elasticsearch中_type的名称。请注意,您必须在Meta类中定义此名称以及doc_type才能使其生效。
这似乎对获取有效,但是使用搜索时,命中不作为MyDoc返回;他们返回为Hit:
doc = MyDoc.get(id=id) # doc is a MyDoc
response = MyDoc.search().query(...).execute() # MyDoc results are not deserialized
MyDoc.Index.doc_type
按预期返回'_doc',但是MyDoc._index._get_doc_type()
则返回'doc'。
我应该如何配置Document子类,使其具有推荐的_doc
文档类型?