【问题标题】:Simple Existing Document Update in Elasticsearch using NEST使用 NEST 在 Elasticsearch 中简单地更新现有文档
【发布时间】:2016-06-09 18:23:20
【问题描述】:

嘿,我试图更新现有的 ElasticSearch 中的 document,我从 Elasticsearch 站点找到了一个 cURL 代码 注意:Sam 类型和 2 文档已经存在我只想更新现有字段

POST /EmployeeIndex/Sam/2/_update
{
   "doc" : {
      "Nested" : true,
      "views": 0
   }
}

它完全符合我的需要,但请帮我将其转换为NEST,因为我在处理.NET,我设法写了一个code

 var responseUpdate = client.Update<clsEmployeeElasticSearch, object>(u => u
               .Index("EmployeeIndex")
                .Type("Sam")
                    .Id(2)
                    .Doc(new { Nested= true })
                    .RetryOnConflict(3)
                    .Refresh());

但它总是在我的document 中创建一个新字段,而不是更新现有字段。 请查看附带的截图,代码 请大家帮忙。

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    您需要的是PartialUpdate。应用到您的示例中,以下代码应该符合您的预期。

        var responseUpdate = client.Update<clsEmployeeElasticSearch, object>(u => u
             .Index("EmployeeIndex")
             .Type("Sam")
             .Id(2)
             .Doc(new {IsActive ="true", Views="0"})
             .DocAsUpsert()
         );
    

    【讨论】:

    • 嘿@valthanx 为您的快速回复,我尝试了您的代码并在我的Sam 文档中添加了IsActiveviews
    • 这是您所期望的,对吧?也就是说,它在您的 Sam 文档中添加了 ID 为 2 的字段。在下一次执行时,它只会更新这些字段。
    • Sam Type with 2 document is already exists 我只想更新它@Val
    • 哦,我看到了“嵌套”与“嵌套”,也许尝试写这个而不是 .Doc(new {"nested" = "true", "views"="0"}) 或干脆 disable camel-casing
    • 谢谢,我很高兴你知道了。
    【解决方案2】:

    您是否可能已经存在但只是遇到了大小写不匹配的问题?见Nest reference:

    属性名称推断在许多地方 NEST 允许您通过 属性名称和 JSON 路径作为 C# 表达式,即:

    .Query(q=>q .Term(p=>p.Followers.First().FirstName, "martijn")) NEST 默认为驼峰式属性。所以上面的 FirstName 属性 将被翻译为“followers.firstName”。

    这个可以通过设置来配置

    settings.SetDefaultPropertyNameInferrer(p=>p);这将离开 属性名称保持不变。

    标有 [ElasticAttibute(Name="")] 的属性或 [JsonProperty(Name="")] 将逐字传递配置的名称。

    ... 请注意,您正在为更新创建一个动态对象,因此,如果您保持这种方式,我相信属性可能不是解决方案

    【讨论】:

    • 感谢简要信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多