簡體   English   中英

C#為Elasticsearch嵌套:如何將更新彈性搜索文檔特定字段的查詢轉換為Nest?

[英]c# nest for elasticsearch: how to convert query that updates particular field of elastic search document to nest?

我們有一個文檔,其中包含字段“ sortScore”和“ id”。 我們要更新可以由“ id”唯一標識的特定文檔的“ sortScore”。

我為v 5.4.1創建了彈性搜索查詢,這完美地更新了“ sortScore”:

POST /stock/1364740/_update
{
    "script" : {
        "inline": "ctx._source.sortScore += params.count",
        "lang": "painless",
        "params" : {
            "count" : 5
        }
    }
}

與此對應的c#嵌套查詢是什么?

您的查詢看起來不太正確; URI的索引名稱為"stock" ,id為"1364740" ,但似乎沒有類型名稱。

使用NEST的更新請求如下所示

var updateResponse = client.Update<object>(1364740, u => u
    .Index("stock")
    .Script(s => s
        .Inline("ctx._source.sortScore += params.count")
        .Lang("painless")
        .Params(d => d
            .Add("count", 5)
        )
    )
);

產生請求JSON

POST http://localhost:9200/stock/object/1364740/_update 
{
  "script": {
    "params": {
      "count": 5
    },
    "lang": "painless",
    "inline": "ctx._source.sortScore += params.count"
  }
}

請注意,該請求在URI中具有一個類型名稱object ,該object是從object通用類型參數推斷出來的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM