npm 包 redisearch 使用教程

阅读时长 6 分钟读完

简介

Redisearch 是一个全文搜索引擎,基于 Redis构建。它允许你在 Redis 数据库中使用高效的分词和全文搜索来管理和查询文档。 Redisearch 的网络接口支持类似 Elasticsearch 的查询语言,并提供了类似 Elasticsearch 的功能,例如过滤、聚合和排序。Redisearch 是一个开箱即用的,支持多种编程语言,可以快速与已有数据库整合。

安装

使用 npm 全局安装 Redisearch,打开命令行,输入如下命令:

连接 Redis

为了连接 Redis 数据库,需要使用 Redis 官方的 Node.js 客户端,首先它也需要使用 npm 安装:

使用以下代码连接 Redis:

注意:其中 porthost 分别为 redis 服务的端口和主机名,并且连接会在网络连接失败时抛出错误

创建索引

提交文档到 Redisearch 的工作开始之前,需要创建或更新索引。Redisearch 索引的定义可以通过 Redis 的 key-value 存储格式进行查询和修改,创建索引的代码如下所示:

检索文档

使用以下代码检索文档:

该方法会在键值为 “redisearch” 的索引内搜寻包含有关 “Hello Redisearch” 的查询字符串的文档。搜索结果将包括所有匹配的文档及其详细信息。

添加更多字段

可以通过以下代码更新索引并添加更多字段:

删除文档

可以将文档从索引中删除:

这将从索引中删除文档 doc1

过滤器

过滤器可以在搜索时过滤文档,例如:

该方法将查询所有具有 “Redisearch” 标题和包含 “tutorial” 的正文的文档。

聚合

通过以下代码实现按分类字段聚合文档:

高亮度显示

使用以下代码高亮显示搜索结果的关键字:

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

该方法将搜索结果高亮显示,使用 “” 和 “” 标记搜索结果的关键字。

结论

如上所述,Redisearch 给我们带来了一个强大的搜索引擎的能力,以及一些 Elasticsearch 的功能。在使用过程中,我们必须先创建索引、添加文档以及添加、删除、修改字段。我们还介绍了如何使用筛选器筛选结果、聚合数据,并在结果中高亮显示查询的文本。这些功能使 Redisearch 成为一种可行的全文搜索解决方案。

示例代码

完整的演示代码:

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

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

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

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

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

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

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

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

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

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

纠错
反馈