介绍
egg-elasticsearch
是一个能够在 Egg.js 框架下使用 Elasticsearch 的插件,使用该插件可以轻松地在 Egg.js 项目上使用 Elasticsearch 的功能,以实现数据搜索、聚合等需求。本文将详细介绍如何使用 egg-elasticsearch
这个 npm 包。
安装
在 Egg.js 项目中安装 egg-elasticsearch
的命令如下:
$ npm install egg-elasticsearch --save
安装成功后,在项目的 package.json
文件中,应该能看到如下的依赖配置:
{ "dependencies": { "egg-elasticsearch": "^x.x.x" } }
配置
我们需要在项目的 config/config.default.js
中进行 egg-elasticsearch
的配置。配置示例代码如下:
exports.elasticsearch = { client: { host: 'localhost:9200', // Elasticsearch 服务的地址 apiVersion: '5.6', // 使用的 Elasticsearch API 版本 }, requestTimeout: 30000, // 请求 Elasticsearch 服务的超时时间 };
使用
在 Egg.js 的控制器(Controller)中,我们可以通过以下代码引入 egg-elasticsearch
:
const { app } = this; const es = app.elasticsearch.get('default');
其中,es
对象是 Elasticsearch 的一个客户端对象,我们可以使用该对象来进行 Elasticsearch 相关的操作。
创建索引
可以使用如下命令在 Elasticsearch 上创建一个名称为 books
的索引:
-- -------------------- ---- ------- --- ----- - ----- ------------------- ------ ------- -- ---- --- -- -------- - ----- ------------------- ------ ------- -- ---- --- -
插入数据
可以使用如下命令往 books
索引中插入一条数据:
await es.index({ index: 'books', type: '_doc', body: { title: '三体', author: '刘慈欣' } });
搜索数据
可以使用如下命令搜索 books
索引中所有作者为“刘慈欣”的书籍:
-- -------------------- ---- ------- --- - ---- - - ----- ----------- ------ -------- ----- ------- ----- - ------ - ------ - ------- ----- - - - --- ------------------
聚合数据
可以使用如下命令统计 books
索引中所有书籍的数量:
-- -------------------- ---- ------- --- - ---- - - ----- ----------- ------ -------- ----- ------- ----- - ------ - ---------- -- -- ----- - ------------ - ------------ - ------ ------- -- -- ----- ----- - - - - --- -------------------------------------------------
总结
通过使用 egg-elasticsearch
,我们可以轻松地在 Egg.js 项目上使用 Elasticsearch 的功能,实现数据搜索、聚合等需求。该插件的配置简单,使用方便,是一个十分实用的 npm 包,值得我们学习和使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005560681e8991b448d3035