结合使用_doc类型和elasticsearch-dsl-py

时间:2019-02-20 18:09:04

标签: python elasticsearch

Elasticsearch 6中索引的文档类型为_docas 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文档类型?

0 个答案:

没有答案