【发布时间】:2021-06-10 13:09:59
【问题描述】:
我正在为我的应用程序使用 spring-data-elasticsearch。我发现spring会在我所有的文档中自动创建动态字段“_class”。我将索引配置为严格的动态映射。我希望某些属性可以动态地从我的文档/映射中排除该字段。
有什么办法吗?
【问题讨论】:
我正在为我的应用程序使用 spring-data-elasticsearch。我发现spring会在我所有的文档中自动创建动态字段“_class”。我将索引配置为严格的动态映射。我希望某些属性可以动态地从我的文档/映射中排除该字段。
有什么办法吗?
【问题讨论】:
目前无法停用此功能。有一个open issue 可以添加此行为。
但是从 (4.2.0.M5) 的下一个版本开始,当 Spring Data Elasticsearch issue #1711 创建索引及其映射时,_class 属性将在索引映射中定义。
【讨论】:
Entity 和 @Document 和属性。如果您只保存Entity 实例,则不需要它。但是现在定义一个派生类SubEntity,它甚至可能不会添加属性而是行为。您可以将这个子类的实例传递给ElasticsearchOperations.save(Entity) 方法,它会很高兴地被保存。但是在阅读它时,你想要一个SubEntity 而不是Entity。这就是需要这些信息的地方。这同样适用于可能被声明为具有类型但实际实例可以是某个子类型的属性。