【问题标题】:How to avoid "_class" field in documents using spring-data-elasticsearch如何使用 spring-data-elasticsearch 避免文档中的“_class”字段
【发布时间】:2021-06-10 13:09:59
【问题描述】:

我正在为我的应用程序使用 spring-data-elasticsearch。我发现spring会在我所有的文档中自动创建动态字段“_class”。我将索引配置为严格的动态映射。我希望某些属性可以动态地从我的文档/映射中排除该字段。

有什么办法吗?

【问题讨论】:

    标签: spring-data-elasticsearch


    【解决方案1】:

    目前无法停用此功能。有一个open issue 可以添加此行为。

    但是从 (4.2.0.M5) 的下一个版本开始,当 Spring Data Elasticsearch issue #1711 创建索引及其映射时,_class 属性将在索引映射中定义。

    【讨论】:

    • 期待下一个版本
    • 但是这个“_class”字段真的需要吗?
    • 假设你有一个类 Entity@Document 和属性。如果您只保存Entity 实例,则不需要它。但是现在定义一个派生类SubEntity,它甚至可能不会添加属性而是行为。您可以将这个子类的实例传递给ElasticsearchOperations.save(Entity) 方法,它会很高兴地被保存。但是在阅读它时,你想要一个SubEntity 而不是Entity。这就是需要这些信息的地方。这同样适用于可能被声明为具有类型但实际实例可以是某个子类型的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2017-05-18
    • 2022-01-13
    相关资源
    最近更新 更多