protected override void ExpectResponse(UpdateByQueryResponse response) { response.Task.Should().NotBeNull(); response.Task.TaskNumber.Should().BeGreaterThan(0); response.Task.NodeId.Should().NotBeNullOrWhiteSpace(); response.Task.FullyQualifiedId.Should().NotBeNullOrWhiteSpace(); }
private async Task <bool> UpdateByQueryAsync() { Guid bookId = _books.First().Id; UpdateByQueryResponse response = await _esClient.UpdateByQueryAsync <Book>( desc => desc.Index(_appConfig.Elasticsearch.BookIndex) .Query( query => query.Term(b => b.Id, bookId.ToString())) .Script( script => script .Source( "ctx._source.title = params.title;" + "ctx._source.description = params.description;") .Params( new Dictionary <string, object>() { { "title", "new title" }, { "description", "new desc" } }))); return(response.Updated > 0); }
protected override void ExpectResponse(UpdateByQueryResponse response) { response.Task.Should().BeNull(); response.Took.Should().BeGreaterThan(0); response.Total.Should().Be(2); response.Updated.Should().Be(2); response.Batches.Should().Be(1); var searchResponse = SearchFlags(CallIsolatedValue); searchResponse.Total.Should().Be(1); }
protected override void ExpectResponse(UpdateByQueryResponse response) { response.VersionConflicts.Should().Be(1); response.Failures.Should().NotBeEmpty(); var failure = response.Failures.First(); failure.Index.Should().NotBeNullOrWhiteSpace(); failure.Status.Should().Be(409); failure.Id.Should().NotBeNullOrWhiteSpace(); failure.Cause.Should().NotBeNull(); failure.Cause.IndexUUID.Should().NotBeNullOrWhiteSpace(); failure.Cause.Reason.Should().NotBeNullOrWhiteSpace(); failure.Cause.Index.Should().NotBeNullOrWhiteSpace(); failure.Cause.Shard.Should().NotBeNull(); failure.Cause.Type.Should().NotBeNullOrWhiteSpace(); }
public UpdateByQueryResponse UpdateByWhere <T>(string indexName, Func <TermQueryDescriptor <T>, ITermQuery> selector, string script, Dictionary <string, object> scriptParams) where T : class { //elasticsearch.yml 设置 script.inline: true //var script="ctx._source.Name = params.newName;" //var scriptParams = new Dictionary<string, object> { { "newName", "新的名字" } }; UpdateByQueryResponse response = elasticClient.UpdateByQuery <T>( s => s.Index(indexName.ToLower()) .SearchType(SearchType.QueryThenFetch) .Query(Q => Q.Term(selector)) .Script(X => X.Source(script) .Params(scriptParams)) ); return(response); }
public UpdateResult(UpdateByQueryResponse response) { Total = response.Total; Updated = response.Updated; }