Elasticsearch DSL、存储字段和字典

Elasticsearch DSL, store fields and dictionary

我有一些映射已知的字段和一些未知的字段,我想存储它们。 映射:

class MyDoctype(DocType):
  ...
  known_field = String(index='not_analyzed')
  ...

  unknown_dict = Nested() # How can I store this dict ???

这应该是可能的,因为 ElasticSearch 2.x 可以处理这种混合映射。 ES dsl 是否基于幕后的严格映射? 我还查看了 persistence 文档,但它似乎到处都依赖于强映射。

您可以使用 Object。 在 Elasticsearch 6.x、Elasticsearch-dsl 6.x

上测试
from elasticsearch_dsl import DocType, Object

class MyDoctype(DocType):
  ...
  known_field = String(index='not_analyzed')
  ...

  unknown_dict = Object()