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();
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
 public UpdateResult(UpdateByQueryResponse response)
 {
     Total   = response.Total;
     Updated = response.Updated;
 }