提供一种将元数据附加到索引的方法,类似于可以
完成类型映射。
不,这就是我提到的类型映射级别的元数据。
使用自定义元创建索引
{
“设置”:{
"number_of_shards" : 3,
“number_of_replicas”:2
},
“自定义元”:{
“名称1”:“值1”,
"name2" : { "attr1": "value1", "attr2":"value2"},
"name3" : 号码
}
}
删除
/{index}/_custom_meta
/{index}/_custom_meta/{name}
放
/{index}/_custom_meta/{name}
得到
/{index}/_custom_meta
/{index}/_custom_meta/{name}
也许可以通过索引设置支持的东西?
经过讨论,这可以简单地通过使用类型meta
并在其中存储一个文档来实现。 收盘
@clintongormley Elasticsearch 从 6.0 版开始不再支持在索引中包含多种类型。
您对存储每个索引的元数据有任何更新的建议吗?
@brusic 这是一个便宜的操作吗? 目前,我在批量请求中更新元文档,以确保元数据与我的索引数据一致。 所以我会为每个索引文档做一个索引更新..
首先,我之前的陈述有点错误。 Clinton 指的是元类型,而不是现在官方的元字段(当时不存在)。
我从来没有使用过元字段,因为它们是在这个问题开放多年后被引入的,我找到了其他替代方案。 我会假设元字段被添加到集群状态,这可能会使这成为一项昂贵的操作。 集群状态需要将新的差异传播到集群中的其他节点,我认为这会使其比简单地索引文档更慢(因为没有缓冲等等)。
感谢准确的回答!
我将为索引元数据使用单独的索引,因为可以使用批量请求同时索引/更新不同索引中的文档。
@clintongormley我想对实现索引级元进行投票。 我想很多 ES 用户都喜欢将一些关于索引的数据附加到索引本身(映射版本,以便摄取者知道他们应该使用哪个编码器;创建时间;创建索引的节点;强制刷新/合并列表;手动干预列表; 等等),我认为它与每个文档的_meta
字段一样有用。
最有用的评论
@clintongormley我想对实现索引级元进行投票。 我想很多 ES 用户都喜欢将一些关于索引的数据附加到索引本身(映射版本,以便摄取者知道他们应该使用哪个编码器;创建时间;创建索引的节点;强制刷新/合并列表;手动干预列表; 等等),我认为它与每个文档的
_meta
字段一样有用。