LeanDB 是 LeanCloud 推出的数据库托管方案,开发者可以在「控制台 => 云引擎 => LeanDB」中创建托管在 LeanCloud 的数据库实例。这篇文章主要介绍其中的 ElasticSearch 数据库。
开发者可以在云引擎中连接到自己的 LeanDB 实例,通过 HTTP 或者 使用 Elasticsearch 官方客户端类库,访问完整的 Elasticsearch 功能。
512
1024
2048
4096
8192
LeanDB 所在的应用的云引擎部署时,会被注入包含 Elasticsearch 连接信息的环境变量ELASTICSEARCH_URL_<NAME> , 其中 NAME 是你在创建 LeanDB 时为它指定的名字,如果你的 LeanDB 名为 MYES 的话,就会有名为 ELASTICSEARCH_URL_MYES 的环境变量。 该环境变量的格式是 http://username:password@host:port,其中包含了所有连接 Elasticsearch 所需的信息,包括认证信息。
ELASTICSEARCH_URL_<NAME>
NAME
MYES
ELASTICSEARCH_URL_MYES
http://username:password@host:port
在 Node.js 中你可以这样连接到 ElasticSearch:
const { Client } = require('@elastic/elasticsearch') const client = new Client({ node: process.env.ELASTICSEARCH_URL_MYES }) // promise API const result = await client.search({ index: 'my-index', body: { query: { match: { hello: 'world' } } } }) // callback API client.search({ index: 'my-index', body: { query: { match: { hello: 'world' } } } }, (err, result) => { if (err) console.log(err) })
npm install @elastic/elasticsearch
除了 elasticsearch 自带的分词器,我们还提供了 Elasticsearch ik plugin 以支持中文分词。 我们可以通过以下途径指定使用 IK 插件进行中文分词:
field
它们的优先级依次降低,当都未指定时,会使用默认的标准分词器(standard analyzer)。具体细节及参数见 specify an analyzer。
除此之外,自定义词库也是支持的。用户可以在控制台上传自定义词库。 词库文件要求为 UTF-8 编码,每个词单独一行,文件大小不能超过 10MB,例如:
面向对象编程函数式编程高阶函数响应式设计
将其保存为文本文件,例如 dict.txt ,上传即可。上传之后,分词将于 2分钟后生效。开发者可以通过 analyze API 来测试。需要注意使用 analyze API 时要指定 index,使用 curl -X POST "localhost:9200/my-index/_analyze?pretty" 的形式。
dict.txt
curl -X POST "localhost:9200/my-index/_analyze?pretty"
LeanDB Elasticsearch 使用指南
LeanDB 是 LeanCloud 推出的数据库托管方案,开发者可以在「控制台 => 云引擎 => LeanDB」中创建托管在 LeanCloud 的数据库实例。这篇文章主要介绍其中的 ElasticSearch 数据库。
开发者可以在云引擎中连接到自己的 LeanDB 实例,通过 HTTP 或者 使用 Elasticsearch 官方客户端类库,访问完整的 Elasticsearch 功能。
主要特性
实例规格
512
、1024
、2048
、4096
、8192
几种,代表不同的运算能力。在云引擎中使用
LeanDB 所在的应用的云引擎部署时,会被注入包含 Elasticsearch 连接信息的环境变量
ELASTICSEARCH_URL_<NAME>
, 其中NAME
是你在创建 LeanDB 时为它指定的名字,如果你的 LeanDB 名为MYES
的话,就会有名为ELASTICSEARCH_URL_MYES
的环境变量。 该环境变量的格式是http://username:password@host:port
,其中包含了所有连接 Elasticsearch 所需的信息,包括认证信息。Node.js
在 Node.js 中你可以这样连接到 ElasticSearch:
npm install @elastic/elasticsearch
来安装上面代码中用到的依赖中文分词
除了 elasticsearch 自带的分词器,我们还提供了 Elasticsearch ik plugin 以支持中文分词。 我们可以通过以下途径指定使用 IK 插件进行中文分词:
field
指定搜索分词器field
指定分词器它们的优先级依次降低,当都未指定时,会使用默认的标准分词器(standard analyzer)。具体细节及参数见 specify an analyzer。
自定义词库
除此之外,自定义词库也是支持的。用户可以在控制台上传自定义词库。 词库文件要求为 UTF-8 编码,每个词单独一行,文件大小不能超过 10MB,例如:
将其保存为文本文件,例如
dict.txt
,上传即可。上传之后,分词将于 2分钟后生效。开发者可以通过 analyze API 来测试。需要注意使用 analyze API 时要指定 index,使用curl -X POST "localhost:9200/my-index/_analyze?pretty"
的形式。常见问题