什么是 Elasticsearch
Elasticsearch 是一款全文检索引擎,它可以快速地检索和分析大量数据。它是建立在 Apache Lucene 基础之上的高度可扩展的搜索引擎,可以应用于各种各样的应用场景。
Docker 容器中安装 Elasticsearch
在 Docker 中安装 Elasticsearch 非常简单,我们可以使用一下命令来安装它:
docker pull elasticsearch
这将会拉取官方的 Elasticsearch 镜像。接着,我们可以使用以下命令在 Docker 中启动 Elasticsearch 容器:
docker run -d -p 9200:9200 -p 9300:9300 --name my-es elasticsearch
这个命令将会在 Docker 中创建一个名为 my-es
的 Elasticsearch 容器,并且将容器内部的 9200
和 9300
端口暴露到 Docker 主机的相应端口。
这样我们就成功地在 Docker 容器中安装了 Elasticsearch。接下来,我们来看一下如何在 JavaScript 中使用它。
在 JavaScript 中使用 Elasticsearch
我们可以使用 elasticsearch.js 库来在 JavaScript 中使用 Elasticsearch。这个库提供了非常方便的 API,帮助我们使用 Elasticsearch 进行全文检索。
首先,我们需要使用 npm 安装 elasticsearch
库:
npm install elasticsearch
接着,我们可以使用以下代码连接到 Elasticsearch 服务器:
const { Client } = require('@elastic/elasticsearch'); const client = new Client({ node: 'http://localhost:9200' });
这将会创建一个连接到 http://localhost:9200
的 Elasticsearch 客户端。
接下来,我们可以使用以下代码在 Elasticsearch 中创建一个索引:
async function createIndex() { await client.indices.create({ index: 'my_index', body: { mappings: { properties: { title: { type: 'text' }, content: { type: 'text' }, created_at: { type: 'date' }, }, }, }, }); }
这将会创建一个名为 my_index
的索引,并且定义了 title
、content
和 created_at
三个字段。
接下来,我们可以使用以下代码向索引中添加数据:
async function addData() { await client.index({ index: 'my_index', body: { title: 'Hello World', content: 'This is a test document.', created_at: new Date(), }, }); }
这将会向索引中添加一条数据。
最后,我们可以使用以下代码来进行全文检索:
async function search() { const response = await client.search({ index: 'my_index', body: { query: { match: { content: 'test', }, }, }, }); console.log(response.body.hits.hits); }
这将会打印出所有包含 test
关键字的文档。
总结
本文介绍了如何在 Docker 容器中安装 Elasticsearch 以及如何在 JavaScript 中使用 Elasticsearch 进行全文检索。Elasticsearch 是一款非常强大的全文检索引擎,其使用方法非常简单,可以帮助我们快速地检索和分析大量数据。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/659e1465add4f0e0ff72c03f