Я использую Elasticsearch Bulk API для создания или обновления документов.Elasticsearch Bulk API - Index vs Create/Update
Я действительно знаю, если они создаются или обновляются, но я могу упростить свой код, просто сделав их все index
или «upserts» в смысле SQL.
Есть ли недостаток в использовании index
(и позволяет ES выяснить его) с использованием более явного create
и update
?
Предположим, вы могли бы потенциально заменить данный документ много раз (например, многократно индексировать один и тот же документ). Поскольку ES не действительно «удаляет» что-либо, не добавляете ли вы все больше и больше документов и увеличиваете их номер версии, оставляя их сборщику мусора позже, чтобы очистить старые версии? В этом случае не используется индекс vs create, чтобы раздувать ваш индекс в краткосрочной перспективе, что может повлиять на производительность? И не будет ли будущее использование мусора в будущем также повлиять на производительность? Это настоящий вопрос, который мне интересен, а не риторический. Спасибо – cwarny
Но когда вы обновляете документ, разве он не извлекает, не изменяет и не индексирует его? При обновлении целого документа мы сказали, что способ обновления документа - получить его, изменить, а затем переиндексировать весь документ. Это правда. Однако, используя API обновлений, мы можем сделать частичные обновления, такие как увеличение счетчика в одном запросе. Мы также сказали, что документы неизменяемы: они не могут быть изменены, заменены только. API обновления должен подчиняться тем же правилам. –