npm 包 sails-elastic-api 使用教程

阅读时长 5 分钟读完

简介

sails-elastic-api 是一款 npm 包,用于将 Elasticsearch 和 Sails 结合起来,提供简单的 RESTful API。使用该包,我们可以快速建立一个无需编写复杂查询语句的 Elasticsearch API。

使用方法

安装

我们可以通过 npm 安装 sails-elastic-api,使用如下命令即可:

配置

sails-elastic-api 配置非常简单,我们只需要在 Sails 项目中的 config 文件夹下创建一个名为 elastic.js 的配置文件,并根据下面的模板填入正确的信息。

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

使用

创建 API

我们可以通过 Sails 命令来创建一个 sails-elastic-api 的 API,例如:

这将会生成一个名为 user 的 API,然后我们只需要在 userController.js 中添加以下代码即可:

这样就创建好了一个默认的 RESTful API,包含以下几个请求:

  • GET /user: 获取所有文档
  • GET /user/:id: 根据 ID 获取文档
  • POST /user: 创建文档
  • PUT /user/:id: 更新文档
  • DELETE /user/:id: 删除文档

查询文档

sails-elastic-api 内置了几个查询参数,可以非常方便地进行查询。

filter

filter 参数可以用于过滤文档。例如,我们可以搜索年龄在 20 到 30 岁之间的用户:

from 和 size

fromsize 参数可以用于分页。例如,我们可以查询第 11 到 20 条记录:

sort

sort 参数可以用于排序。例如,我们可以按照年龄升序排列:

query

query 参数可以用于搜索。例如,我们可以搜索姓为 Smith 的用户:

其他参数

sails-elastic-api 还支持 fields, scriptFields, stats, suggest, facetshighlight 等其他参数,具体用法可以查看 官方文档

示例代码

下面是一个简单的示例,使用 sails-elastic-api 实现了一个搜索电影的 API。

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

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

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

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

这样我们就可以访问 GET /movie 接口来搜索电影了,例如:

以上代码将返回电影名为 The Shawshank Redemption 的电影信息。

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

纠错
反馈