/// <summary> /// 修改 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="indexName"></param> /// <param name="typeName"></param> /// <param name="id"></param> /// <returns></returns> public bool Update(ESUpdateOption option) { var queryCondations = BuildQueryContainer(option.Where, option.Analyzer); var shouldQuerys = queryCondations.Should; var mustQuerys = queryCondations.Must; var mustNotQuerys = queryCondations.MustNot; if (mustQuerys.Count <= 0 && shouldQuerys.Count <= 0 && mustNotQuerys.Count <= 0) { return(false); } UpdateByQueryRequest <T> request = new UpdateByQueryRequest <T>(option.IndexName, option.TypeName); request.Script.Params = option.Model; var query = new BoolQuery(); if (mustQuerys.Count > 0) { query.Must = mustQuerys; } if (shouldQuerys.Count > 0) { query.Should = shouldQuerys; } if (mustNotQuerys.Count > 0) { query.MustNot = mustNotQuerys; } request.Query = query; var res = _es.UpdateByQuery(request); return(res.Updated > 0); }
protected void ResetAppId(string _default_index, string app_id) { var req = new UpdateByQueryRequest(_default_index); //req.Query = new QueryContainer(new MatchAllQuery()); //req.Script = new InlineScript($"ctx._source.app_id='{app_id}'"); var re = client.UpdateByQuery(req); }
protected void UpdateByQuery(string indexName, QueryContainer query, IScript script) { var elasticSearchTypeAttribute = Attribute.GetCustomAttribute(typeof(TDocument), typeof(ElasticsearchTypeAttribute)); var elasticSearchTypeName = ((Nest.ElasticsearchTypeAttribute)elasticSearchTypeAttribute).Name; var request = new UpdateByQueryRequest(indexName, elasticSearchTypeName) { Query = query, Script = script }; var status = _esClient.UpdateByQuery(request); ElasticsearchExceptionBuilder(status, ElasticsearchOperation.Update); }
/// <summary> /// 更新全部字段 /// </summary> /// <returns></returns> public bool UpdateByQuery(UpdateByQueryRequest t) { var updateByQueryResponse = client.UpdateByQuery(t); return(updateByQueryResponse.IsValid); }
/// <summary> /// 更新(需要自己构建request对象) /// </summary> /// <param name="request"></param> /// <returns></returns> public bool Update(UpdateByQueryRequest <T> request) { var res = _es.UpdateByQuery(request); return(res.Updated > 0); }