我知道它可以映射您的个人 ID,以便文档 ID 与您的个人 ID 相同,但是否可以采用其他方式?
如何将文档 ID 值映射到映射中的属性?
答案最好使用 C# NEST 库,但不是必须的,谢谢。
我知道它可以映射您的个人 ID,以便文档 ID 与您的个人 ID 相同,但是否可以采用其他方式?
如何将文档 ID 值映射到映射中的属性?
答案最好使用 C# NEST 库,但不是必须的,谢谢。
我不知道有任何功能可以修改索引到 ES 中的源。
(已弃用)transform
功能可以在索引时添加一个新的任意字段,但不会修改源,这意味着在检索结果时,您不会获得创建的字段。
我建议您创建自己的 ID 并将它们分配给您的MyDocId
字段,并且不要让 ES 生成它们。
请注意,在 ES 5 中,我们将拥有一种称为Ingest node的新型节点,它将允许定义转换管道,类似于使用 Logstash 过滤器可以完成的操作。此时,您将能够使用set 处理器来设置/创建任意字段并实现您想要的:
{
"set": {
"field": "MyDocId",
"value": "_id"
}
}
NEST 目前不会将生成的 id 映射到 POCO 的属性上;response.Hits
您可以使用元数据手动分配 id
var response = client.Search<Poco>();
var pocos = response.Hits.Select(hit =>
{
hit.Source.Id = h.Id;
return hit.Source;
}).ToList();
这在 1 月份再次讨论过,我们决定保留当前的实施;POCO 映射到_source
Elasticsearch 中。