c# - Elasticsearch NEST向现有索引添加属性

标签 c# elasticsearch nest

我想向已经包含文档的现有索引添加新属性。

原始文件

[ElasticsearchType(Name = "mydocument", IdProperty = nameof(Id))]
public class MyDocument
{
    public Guid Id { get; set; } = Guid.NewGuid();

    [Date(Name = "occurredon")]
    public DateTime OccurredOn { get; set; }

    [Text(Name = "details")]
    public string Details { get; set; }
}

如何初始化和填充索引...
var client = new ElasticClient(settings);
var createResponse = client.CreateIndex("myindex", d => d.Mappings(ms => ms.Map<MyDocument>(m => m.AutoMap())));

// index many documents...
var docs= new List<MyDocument>();
docs.Add(new MyDocument { OccurredOn = DateTime.UtcNow, Details = "foo1" });
docs.Add(new MyDocument { OccurredOn = DateTime.UtcNow, Details = "foo2" });
var indexResponse = await client.IndexManyAsync(docs, "myindex");

现在,我想通过添加'collector'属性来更新文档。新文档将如下所示:
[ElasticsearchType(Name = "mydocument", IdProperty = nameof(Id))]
public class MyDocument
{
    public Guid Id { get; set; } = Guid.NewGuid();

    [Date(Name = "occurredon")]
    public DateTime OccurredOn { get; set; }

    [Text(Name = "details")]
    public string Details { get; set; }

    // new property
    [Text(Name = "collector")]
    public string CollectionHost { get; set; }
}

添加新的“收集器”属性时,我必须发出什么一次性命令?我试过了,但是失败了。
var z = await client.MapAsync(new PutMappingRequest("myindex", typeof(MyDocument)));

我敢肯定这是可以做到的,但也许不能使用NEST,我需要使用较低级别的API吗?

最佳答案

我想我想念ES和Kibana在做什么。我以为如果将具有其他属性的文档索引到现有索引中,它们将会丢失。可能不会。我只需要刷新Kibana使其快乐即可。

简而言之,我只是添加了一个文档,该文档利用了更新的POCO(带有“collector”字段的POCO),然后刷新了Kibana的索引字段列表,所有内容均按预期运行。

猜猜我使这件事变得比原本困难得多。不会是我最后一次想什么。

关于c# - Elasticsearch NEST向现有索引添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53874889/

相关文章:

mongodb - 通过CSV使用Elastic Search API查询的Jmeter进行负载测试

elasticsearch - 在Kibana和C#NEST中使用逻辑AND查询

c# - 为对象派生唯一字典键的最佳方法是什么?

c# - Entity Framework 并发和 Azure 函数

c# - 如何使用 System.Speech

elasticsearch - EsSparkSQL $ .saveToES方法中发生NoSuchMethodError

logging - Logstash 输入插件 : Redis vs Elasticsearch

c# elastic search nest 如何输出文档评分

c# - 使用NEST C#在Elastic搜索中删除嵌套文档

c# - 使用 Graph API 获取我 friend 的 friend