gpt4 book ai didi

c# - Elasticsearch 中数据继承的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 07:56:32 24 4
gpt4 key购买 nike

我有一个父类和两个像这样的 child :

public class Parent {
public Guid Id { get; set; }
public string Name { get; set; }
}

public class FirstChild {
public string IdentityCode { get; set; }
}

public class OtherChild {
public string RegistrationCode { get; set; }
}
有一个问题:将这两个继承的类存储在ElasticSearch内部的同一个Index中是否是一个好方法?
我看到有一个 _type 在我的文档存储在数据库中后添加到我的文档中的属性,但它始终具有“文档”值。
我测试了这段代码来填充它,但它似乎不是这样工作的。
await ElasticClient.IndexAsync<FirstChild>(child, m => m.Index(IndexName));
而且,我在 SO 上发现了这个问题,用于从数据库检索我的条目,但它已过时,API 已更改且无法访问。
我想知道将同级数据存储在同一索引中是否是一种好方法,我该如何正确执行此操作。

最佳答案

从 ES 6.0 开始,它是 not possible anymore to store multiple types在同一索引内,即 _type您所指的字段将始终是 doc_doc .在 ES 8.0 中,_type字段将被完全删除。
但是,如果对您的用例有意义,您仍然可以决定使用 custom type field 将多种类型存储在单个索引中。存在于您的文档中。
您应该努力仅将共享相同(或非常相似)映射的相同索引数据存储在相同的索引中,这似乎不是 Parent 的情况。 , FirstChildSecondChild ,但如果你添加一个 public string type属性(property)到你的类(class),你仍然可以做到。

关于c# - Elasticsearch 中数据继承的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66678910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com