2016-05-10 2 views
1

UpdateRequestのスクリプトにパラメータを使用して成功させたいです。ここ は、ソースコードである:Elasticsearch Nest 2.x UpdateRequestでのparamsの使用方法

 IUpdateRequest<People, People> updateRequest = new UpdateRequest<People, People>(indexName, "people", docId); 
     updateRequest.RequestParameters.Script("ctx._source.age+=step"); 
     updateRequest.Params = new Dictionary<string, object>(); 
     updateRequest.Params.Add("step", 1); 

     IUpdateResponse<People> updateResponse = client.Update<People>(updateRequest); 

これが失敗した、のparamsが何であるか、スクリプトのparamsを置くための正しい場所ではないように、この

 IUpdateRequest<People, People> updateRequest = new UpdateRequest<People, People>(indexName, "people", docId); 
     updateRequest.RequestParameters.Script("ctx._source.age+=1"); 
     IUpdateResponse<People> updateResponse = client.Update<People>(updateRequest); 

に見えるようにそれが成功したのparams、私が使用していない場合paramsをスクリプトに入れる正しい方法は?

答えて

1

ご要望が正しくありません。あなたは、要求が

POST http://localhost:9200/people/people/1/_update?pretty=true 
{ 
    "script": "ctx._source.age+=step", 
    "params": { 
    "step": 1 
    } 
} 
のようになります。
var indexName = "people"; 
var docId = 1; 

var updateRequest = new UpdateRequest<People, People>(indexName, "people", docId) 
{ 
    Script = "ctx._source.age+=step", 
    Params = new Dictionary<string, object> 
    { 
     { "step", 1 } 
    } 
}; 

var updateResponse = client.Update<People>(updateRequest); 

インラインスクリプトに updateRequestScriptプロパティを設定する必要があります
関連する問題