美文网首页
Elasticsearch 的插入性能

Elasticsearch 的插入性能

作者: NazgulSun | 来源:发表于2019-12-11 14:14 被阅读0次

场景

  1. 图谱到es中,节点名字做 分词索引。
  2. 每天刷新数据,不用merge,而是分为 from 和 to 双索引模式, from 在用的时候, 把 to 删除重建。
  3. 需要rebuild 比较快,让后切换 alias 到新建的索引。
问题。

使用 UpdateRequest, 然后merge 操作。
速度越来越慢这个是可以预见的。

优化

因为是rebuild index,所以不需要用 update 这种merge 的操作。而是直接用 insert。
有一个点,就是保证入图的数据自己的不是重复的。
所以就是用
IndexRequest 代替 updateRequest,速度会提高 5-10倍。

如果觉得还不够,想要利用多线程,可以使用 bulkAsync

    public void batchUpdateAysnc(List<IndexRequest> requests, ActionListener listener) throws IOException
    {
        BulkRequest bulkRequest = new BulkRequest();
        requests.forEach(req->bulkRequest.add(req));
        highLevelClient.bulkAsync(bulkRequest,RequestOptions.DEFAULT, listener);
    }

底层自己io调度,速度还能提高个几倍,做到接近 1w/s 的插入速度是可以的。

相关文章

网友评论

      本文标题:Elasticsearch 的插入性能

      本文链接:https://www.haomeiwen.com/subject/kyvogctx.html