public DeleteByQueryRequestTests()
		{
			QueryContainer query = new TermQuery()
			{
				Field = Property.Path<ElasticsearchProject>(p=>p.Name),
				Value = "value"
			} && new PrefixQuery()
			{
				Field = "prefix_field", 
				Value = "prefi", 
				Rewrite = RewriteMultiTerm.ConstantScoreBoolean
			};

			var request = new DeleteByQueryRequest()
			{
				AllowNoIndices = true,
				ExpandWildcards = ExpandWildcards.Closed,
				Query = query,
				DefaultOperator = DefaultOperator.And
			};
			var response = this._client.DeleteByQuery(request);
			this._status = response.ConnectionStatus;
		}
Exemplo n.º 2
0
        public DeleteByQueryRequestTests()
        {
            QueryContainer query = new TermQuery()
            {
                Field = Property.Path <ElasticsearchProject>(p => p.Name),
                Value = "value"
            } && new PrefixQuery()
            {
                Field   = "prefix_field",
                Value   = "prefi",
                Rewrite = RewriteMultiTerm.ConstantScoreBoolean
            };

            var request = new DeleteByQueryRequest()
            {
                AllIndices      = true,
                AllowNoIndices  = true,
                ExpandWildcards = ExpandWildcards.Closed,
                Query           = query,
                DefaultOperator = DefaultOperator.And
            };
            var response = this._client.DeleteByQuery(request);

            this._status = response.ConnectionStatus;
        }
        public virtual async Task DeleteAllByProjectIdAsync(Guid projectId, CancellationToken cancellationToken = default)
        {
            ValidateElasticSearchEnabled();

            var request = new DeleteByQueryRequest(_options.IndexName)
            {
                Query = new BoolQuery
                {
                    Filter = new QueryContainer[]
                    {
                        new BoolQuery
                        {
                            Must = new QueryContainer[]
                            {
                                new TermQuery
                                {
                                    Field = "projectId",
                                    Value = NormalizeField(projectId)
                                }
                            }
                        }
                    }
                },
            };

            HandleError(await _clientProvider.GetClient()
                        .DeleteByQueryAsync(request, cancellationToken));
        }
Exemplo n.º 4
0
        /// <summary>
        /// 按照指定条件删除
        /// </summary>
        /// <param name="option"></param>
        /// <returns></returns>
        public bool Delete(ESDeleteOption 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);
            }

            var request = new DeleteByQueryRequest <T>(option.IndexName, option.TypeName);
            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.DeleteByQuery(request);

            return(res.Deleted > 0);
        }
        /// <summary>
        ///     Clear Index Logs  with string
        /// </summary>
        public Task <DeleteByQueryResponse> ClearIndexData(string indexName)
        {
            DeleteByQueryRequest r = new DeleteByQueryRequest(indexName);

            r.QueryOnQueryString = "*";
            return(elasticClient.DeleteByQueryAsync(r));
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deletes all documents in the index
        /// </summary>
        public async Task ClearIndex()
        {
            var req = new DeleteByQueryRequest(_indexName)
            {
                Query = EverythingQuery()
            };

            await _esClient.DeleteByQueryAsync(req);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 通过条件删除
        /// </summary>
        public static async Task <DeleteByQueryResponse> DeleteByQueryAsync_ <T>(this IElasticClient client, string indexName, QueryContainer where) where T : class, IESIndex
        {
            var query = new DeleteByQueryRequest <T>(indexName)
            {
                Query = where
            };

            var response = await client.DeleteByQueryAsync(query);

            return(response);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 通过条件删除
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="client"></param>
        /// <param name="indexName"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        public static async Task DeleteByQueryAsync_ <T>(this IElasticClient client, string indexName, QueryContainer where) where T : class, IElasticSearchIndex
        {
            var query = new DeleteByQueryRequest <T>(indexName)
            {
                Query = where
            };

            var response = await client.DeleteByQueryAsync(query);

            response.ThrowIfException();
        }
        /// <summary>
        /// 删除指定数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="deleteRequest"></param>
        /// <returns></returns>
        public IDeleteByQueryResponse DeleteByQuery <T>(DeleteByQueryRequest <T> deleteRequest) where T : class
        {
            var response = ElasticClient.DeleteByQuery(deleteRequest);

            if (!response.IsValid)
            {
                throw new ElasticsearchException("删除失败:" +
                                                 response.OriginalException.Message);
            }
            return(response);
        }
Exemplo n.º 10
0
        public virtual async Task DeleteAllAsync(CancellationToken cancellationToken = default)
        {
            ValidateElasticSearchEnabled();

            var request = new DeleteByQueryRequest(_options.IndexName)
            {
                Query = new MatchAllQuery()
            };

            HandleError(await _clientProvider.GetClient()
                        .DeleteByQueryAsync(request, cancellationToken));
        }
Exemplo n.º 11
0
        /// <summary>
        ///     删除指定数据
        /// </summary>
        public void DeleteByQuery(string key)
        {
            var request       = new DeleteByQueryRequest <Content>("content_test");
            var predicateList = new List <IPredicate>
            {
                Predicates.Field <Content>(x => x.Key, ExpressOperator.Eq, key)
            };
            var predicate = Predicates.Group(GroupOperator.And, predicateList.ToArray());

            request.InitDelteQueryContainer(predicate);

            _deleteProvider.DeleteByQuery(request);
        }
Exemplo n.º 12
0
        public async Task <bool> Remove(Guid entryId)
        {
            var request = new DeleteByQueryRequest <T>(_Index)
            {
                Query = new TermQuery()
                {
                    Field = "_id", Value = entryId.ToString(), IsStrict = true
                }
            };

            var response = await _Client.DeleteByQueryAsync(request);

            return(response.Took > 0);
        }
Exemplo n.º 13
0
        /// <summary>
        /// 删除此日期之前的数据
        /// 由定时任务调用,不用异步
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static void DeleteDataBefore(DateTime time)
        {
            var req = new DeleteByQueryRequest <ESLogLine>(IndexName);

            req.Query  = new QueryContainer();
            req.Query &= new DateRangeQuery()
            {
                Field = nameof(temp.UpdateTime), LessThan = time
            };
            //delete by query
            var client   = new ElasticClient(ElasticsearchClientManager.Instance.DefaultClient);
            var response = client.DeleteByQuery(req);

            response.ThrowIfException();
        }
Exemplo n.º 14
0
        public async Task <DeleteByQueryResponse> DeleteByQuery <T>(Expression <Func <T, bool> > expression, string index = "")
            where T : class, new()
        {
            var indexName = index.GetIndex <T>();
            var request   = new DeleteByQueryRequest <T>(indexName);
            var build     = new QueryBuilder <T>();

            request.Query = build.GetQueryContainer(expression);
            var response = await _elasticClient.DeleteByQueryAsync(request);

            if (!response.IsValid)
            {
                throw new Exception("删除失败:" + response.OriginalException.Message);
            }
            return(response);
        }
Exemplo n.º 15
0
        public void BulkDelete(IEnumerable <object> keys)
        {
            if (keys == null || !keys.Any())
            {
                return;
            }
            var skeys   = keys.Cast <string>();
            var request = new DeleteByQueryRequest <TEntity>()
            {
                Query = new QueryContainer(new IdsQuery()
                {
                    Values = skeys
                })
            };
            var response = _client.DeleteByQuery(request);

            ValidateElasticSearchResponse(response);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="type"></param>
        /// <param name="wherestr"></param>
        public long DeleteDataByWhere(string type, string wherestr)
        {
            IDeleteByQueryRequest request = new DeleteByQueryRequest(_indexName, type);

            request.Query = new ScriptQuery
            {
                Inline = wherestr
            };
            var result = Client.DeleteByQuery(request);

            if (result.ServerError != null)
            {
                _log.Error("删除失败:" + result.ServerError.Error.Reason);
                return(0);
            }
            if (result.Indices != null && result.Indices.ContainsKey("_all"))
            {
                return(result.Indices["_all"].Deleted);
            }
            return(0);
        }
Exemplo n.º 17
0
        public async Task <IActionResult> Delete(string id, [FromServices] IElasticClient elasticClient)
        {
            var result = await elasticClient.GetAsync <Log>(id);

            if (result.Source == null)
            {
                return(NotFound());
            }

            var request = new DeleteByQueryRequest <Log>
            {
                Query = new QueryContainer(new TermQuery
                {
                    Field = "id",
                    Value = id
                })
            };

            await elasticClient.DeleteByQueryAsync(request);

            return(Ok());
        }
Exemplo n.º 18
0
        /// <summary>
        /// 删除(需要自己构建request对象)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool Delete(DeleteByQueryRequest <T> request)
        {
            var res = _es.DeleteByQuery(request);

            return(res.Deleted > 0);
        }
        private static void Index(DocumentModel document, String operation)
        {
            var uriString = ConfigurationManager.AppSettings["SEARCHBOX_URL"];
            var searchBoxUri = new Uri(uriString);

            var settings = new ConnectionSettings(searchBoxUri);
            settings.SetDefaultIndex(indexName);

            var client = new ElasticClient(settings);

            if (!client.IndexExists(indexName).Exists)
            {
                // Create a new "sample" index with default settings
                ICreateIndexRequest iCreateIndexReq = new CreateIndexRequest(indexName);
                iCreateIndexReq.IndexSettings = new IndexSettings();
                iCreateIndexReq.IndexSettings.NumberOfReplicas = 10;

                //iCreateIndexReq.IndexSettings.Mappings = new List<RootObjectMapping>();
                //RootObjectMapping rootObjectMapping = new RootObjectMapping();
                //rootObjectMapping.AllFieldMapping()
                //iCreateIndexReq.IndexSettings.Mappings.
                //client.CreateIndex(iCreateIndexReq);
                //client.CreateIndex(indexName,s=>s.)
                var resCreate = client.CreateIndex(indexName, s => s.AddMapping<DocumentModel>(f => f.MapFromAttributes()).NumberOfReplicas(1).NumberOfShards(10));

                //client.CreateIndex(indexName, new IndexSettings());
                //client.create
            }

            if (operation.Equals("delete"))
            {
                //client.DeleteById(indexName, "documents", document.DocumentId);
                IDeleteByQueryRequest iDeleteByQueryRequest = new DeleteByQueryRequest();
                //IDeleteIndexRequest delReq = new DeleteIndexRequest(indexName);
                //client.DeleteIndex()
                //client.DeleteByQuery(new DeleteByQueryRequest())
                client.Delete<DocumentModel>(f => f.Id(document.DocumentId).Index(indexName).Refresh());
                //var response = this.Client.Delete<ElasticsearchProject>(f=>f.Id(newDocument.Id).Index(newIndex).Refresh());
            }
            else
            {
               //IIndexRequest<DocumentModel> indexRequest = IndexRequest<DocumentModel>();
               //client.Index(i)
               //client.Index(document, indexName, "documents", document.DocumentId);
               //IndexDescriptor indexDesc = IndexDescriptor;
               //IndexRequestParameters indexParameter = new IndexRequestParameters();
               // indexParameter.Replication(1);
                client.Index(document, i => i.Id(document.DocumentId).Index(indexName));
                //client.Index();
                //client.Index()
            }
        }