第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Elastic Search 中通過三個(gè)調(diào)用更新索引策略的文檔效率不高

在 Elastic Search 中通過三個(gè)調(diào)用更新索引策略的文檔效率不高

C#
千萬里不及你 2023-09-24 15:48:16
我有一個(gè) AWS Elastic Search 服務(wù)器。使用映射模板和索引策略。{  "index_patterns": "users*",  "order": 6,  "version": 6,  "aliases": {    "users": {}  },  "settings": {    "number_of_shards": 5  },  "mappings": {    "_doc": {      "dynamic": "strict",      "properties": {        "id": { "type": "keyword" },        "emailAdress": { "type": "keyword" }      }    }  }}指數(shù)策略是{index_patterns}-{yyyy}-{MM}-{order}-{version}public async Task<Result> HandleEventAsync(UserChanged @event, CancellationToken cancellationToken){    // 1. Get User, I could get away with this call if Index was known and strategy not used    var userMaybe =        await _usersRepository.GetByIdAsync(@event.AggregateId.ToString(), cancellationToken);    if (userMaybe.HasValue)    {        var user = userMaybe.Value.User;        var partialUpdate = new        {            name = @event.Profile.Name,            birthDate = @event.Profile.BirthDate?.ToString("yyyy-MM-dd"),            gender = @event.Profile.Gender.ToString(),            updatedDate = DateTime.UtcNow,            updatedTimestampEpochInMilliseconds = EpochGenerator.EpochTimestampInMilliseconds(),        };        // 2. Remove fields with NULL values (if found any)        // 3. Partial or Full update of the document, in this case partial        var result = await _usersRepository.UpdateAsync(user.Id, partialUpdate, userMaybe.Value.Index, cancellationToken: cancellationToken);        return result.IsSuccess ? Result.Ok() : Result.Fail($"Failed to update User {user.Id}");    }    return Result.Fail("User doesn't exist");}因此,在這個(gè)方法中,我使用 SQS 消息,由于查找索引的原因,我從 Elastic Search 檢索文檔,因?yàn)槲也幻鞔_知道它,使用以下方法刪除任何 NULL 字段,因?yàn)楦轮械男蛄谢绦驅(qū)?NULL 值,然后部分更新文檔。這是 1 次更新的 3 個(gè) Elastic Search 操作,我知道可以通過決定僅容忍文檔中的空值來刪除 NULL 值 UpdateByQuery 調(diào)用,但我們可能會(huì)面臨無法在需要時(shí)使用 Exists/NotExists 查詢這些字段的問題。我的問題是,如果我改變策略,對(duì)所有用戶文檔使用常量索引,這些文檔的數(shù)量并不多,目前也不會(huì)真正增長(zhǎng)到數(shù)十億,我的彈性搜索、分片/索引的性能是否會(huì)受到影響ETC?
查看完整描述

1 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

是的。單個(gè)索引可以處理大量數(shù)據(jù):您不需要將它們拆分得那么小。事實(shí)上,從性能角度來看,帶有小分片的小索引實(shí)際上更糟糕,因?yàn)樗鼤?huì)導(dǎo)致每個(gè)節(jié)點(diǎn)有大量分片,從而消耗堆空間和開銷。

如果您定期收到大量數(shù)據(jù),那么創(chuàng)建單個(gè)基于日期的索引是有意義的,因此也許只有該index_name-yyyyMMdd模式才有效。

最后,您始終可以使用通配符搜索所有索引。所以你可以通過查詢來搜索上面的內(nèi)容index_name-*。在您現(xiàn)有的模式中,您可以執(zhí)行相同的操作:index_patterns-*index_patterns-yyyy-*等。

查看完整回答
反對(duì) 回復(fù) 2023-09-24
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)