#c# #elasticsearch
#c# #elasticsearch
Вопрос:
У меня есть этот код, который выбирает 100 записей из таблицы продуктов, а затем DeleteManyAsync
(из пакета NEST) удаляет их все. Как мне выбрать все данные вместо необходимости жестко кодировать значение 100?
var documents = _elasticClient.Search<Product>(
s => s.Query(q => q.MatchAll())
.Size(100)
);
var enumerable = documents.Hits.Select(h => h.Source);
await _elasticClient.DeleteManyAsync<Product>(enumerable);
Ответ №1:
Если вам нужно удалить все данные из индекса, вам не нужно сначала запрашивать их и передавать клиенту. Просто используйте delete by query API:
await _elasticClient.DeleteByQueryAsync<Product>(
s => s.Query(q => q.MatchAll())
);
Ответ №2:
Если вы хотите удалить все записи из индекса, то почему бы просто не удалить индекс и не создать новый, таким образом, это было бы намного быстрее и дешевле сделать.
Пожалуйста, обратитесь к delete index API для получения дополнительной информации.