次のように、POCO
があります。ネストされたオブジェクトのelasticsearchバージョン2.0.0.0の部分的な更新のネスト
public class Graph
{
public string Id { get; set; } // Indexed by this
public List<Node> NodeList { get; set; }
}
public class Node
{
public string Id { get; set; }
public string Name { get; set; }
public List<Edge> EdgeList { get; set; }
}
public class Edge
{
public string Id { get; set; }
public double Cost { get; set; }
}
部分的に私のGraph
を更新するとき、私はそれがId
だことでNodeList
内の既存のNode
を見つけ、それがName
とEdge
プロパティの更新したいです。 I Node
オブジェクトを私のNodeList
に追加します。既存のものだけを更新したい。
SOFAR私が試してみた:
public void UpdateGraph(string index, Graph graph)
{
var docPath = new DocumentPath<Graph>(graph.Id).Index(index);
try
{
var updateResp = client.Update<Graph, Graph>(docPath, searchDescriptor => searchDescriptor
.Doc(graph)
.RetryOnConflict(4)
.Refresh(true)
);
}
}
を私の現在の実装では、あなたは私がやっているすべては 古いGraph
オブジェクトを交換されて見ることができるように。しかし私はGraph
オブジェクトを部分的に更新したいと思います。 Node
オブジェクトのリストをパラメータとして送信したいとします。 NodeList
にあるものを見つけ、Node
オブジェクトのみを更新します。
次のようなたぶん何か、
public void UpdateGraph(string index, List<Node> node)
{
//Code here
}