npm 包 elasticsearch-scroll-full 使用教程

阅读时长 4 分钟读完

如果你经常使用 ElasticSearch 数据库,你可能会遇到需要一次性返回大量数据的情况。ElasticSearch 默认情况下会限制每个单接口的返回结果数量,因此需要使用滚动查询的技术来获取更多数据,这时 elasticsearch-scroll-full 包就可以帮助你了。

下面我将分享如何安装和使用这个 npm 包。

安装

你可以通过以下命令安装 elasticsearch-scroll-full:

使用方法

使用 elasticsearch-scroll-full,你需要先从 ElasticSearch 查询中获取一些相关的信息:

  • 查询的 index 名称
  • 查询条件
  • 每次查询返回的数量(默认情况下,一次最多返回 10 条结果)
  • 一次查询需要的时间

可以使用以下代码来执行查询:

-- -------------------- ---- -------
----- ------------- - -------------------------
----- --------- - -------------------------------------

----- ------ - --- ----------------------
  ----- -----------------
  ---- -------
---

----- --------- - --- ----------------- ------------- -
  ----- -
    ------ -
      ---------- ---
    --
  --
  ----- ----
  ------- ------
---

-------------------- ------- -- -
  -------------------------------- -- -------------------------------
---

------------------- -- -- -
  ---------------- ---- --- ---- ------------
---

--------------------- ------- -- -
  -------------------
---

-----------------

在代码中,我们首先创建了一个 ElasticSearch 客户端对象,然后创建了一个 elasticsearch-scroll-full 对象 elaScroll。在创建 elaScroll 对象时,我们需要传入 ElasticSearch 客户端对象、index 名称、查询条件、每次返回的数量和一次查询需要的时间。在这个例子中,我们查询了 index 中的所有数据,并设置每次返回 100 条结果和 30 秒的查询时间。最后,我们使用了 elaScroll.next() 方法来执行查询。

当查询返回数据后,我们可以通过 elaScroll.on('data', (chunk) => {...}) 方法来获取数据,并通过 chunk.hits.hits.forEach(document => console.log(document._source)) 来打印结果。如果数据已经全部返回,我们可以通过 elaScroll.on('end', () => {...}) 来检测并处理结束状态。

如果发生错误,我们也可以通过 elaScroll.on('error', (error) => {...}) 来处理错误情况。

指导意义

elasticsearch-scroll-full 可以帮助我们轻松地从 ElasticSearch 中获取大量的数据。使用这个 npm 包的主要方法是通过 elaScroll.next() 来执行查询,通过 elaScroll.on('data', (chunk) => {...}) 来获取查询结果,通过 elaScroll.on('end', () => {...}) 来处理结束状态。同时,我们也可以通过 elaScroll.on('error', (error) => {...}) 来处理错误情况。

总而言之,elasticsearch-scroll-full 让我们能够更轻松地使用 ElasticSearch,可以帮助我们快速从 ElasticSearch 中获取大量数据。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562f681e8991b448e0bf1

纠错
反馈