npm 包 @ahsanayaz/loopback-connector-es 使用教程

阅读时长 6 分钟读完

前言

在开发 Web 应用过程中,数据存储和查询是非常重要的环节。Elasticsearch 是一个非常优秀的搜索引擎,它有着出色的文本搜索、聚合、分析等功能,加上它具有强大的水平扩展能力,所以它越来越多的被用于大规模数据存储和检索场景之中。而 Loopback 是一个强大的 Node.js 应用框架,本文所介绍的 @ahsanayaz/loopback-connector-es 就是将这两者结合起来,提供了非常方便的 Elasticsearch 连接器。

安装

基本使用

首先,需要在 datasources.json 文件中添加 Elasticsearch 链接的数据源配置,如下所示:

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

在 model 的配置文件中,通过 dataSource 配置项来指定使用的数据源:

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

接着,就可以在代码中直接使用 MyModel 类,来进行 Elasticsearch 数据的操作了:

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

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

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

更高级的操作

除了上述基本操作之外,@ahsanayaz/loopback-connector-es 也提供了非常丰富的 API,可以满足更多高级需求的操作。

过滤

通过 where 属性可以实现数据的过滤,类似于 SQL 中的 WHERE 子句,例如:

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

筛选

通过 fields 属性可以对返回的结果中的属性进行筛选,类似于 SQL 中的 SELECT field1, field2, ...,例如:

排序

通过 order 属性可以对返回的结果进行排序,类似于 SQL 中的 ORDER BY field1 ASC, field2 DESC,例如:

分页与限制

通过 limitskip 属性可以实现分页和限制,类似于 SQL 中的 LIMIT x OFFSET y,例如:

聚合

通过 aggregate 方法可以实现 Elasticsearch 的聚合操作,例如计算最大值、最小值、平均值等:

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

原始查询

如有需要,也可以通过 connector 属性来直接执行一些原始的 Elasticsearch 查询操作:

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

结语

@ahsanayaz/loopback-connector-es 是一个非常优秀的 Elasticsearch 连接器,它提供了非常丰富的 API,使我们可以方便地使用 Elasticsearch 进行数据存储和检索。本文主要介绍了它的基本使用和一些高级操作,希望能对大家有所帮助和启发。

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

纠错
反馈