简介
Redisearch 是一个全文搜索引擎,基于 Redis构建。它允许你在 Redis 数据库中使用高效的分词和全文搜索来管理和查询文档。 Redisearch 的网络接口支持类似 Elasticsearch 的查询语言,并提供了类似 Elasticsearch 的功能,例如过滤、聚合和排序。Redisearch 是一个开箱即用的,支持多种编程语言,可以快速与已有数据库整合。
安装
使用 npm 全局安装 Redisearch,打开命令行,输入如下命令:
--- ------- -- ----------
连接 Redis
为了连接 Redis 数据库,需要使用 Redis 官方的 Node.js 客户端,首先它也需要使用 npm 安装:
--- ------- ----- ------
使用以下代码连接 Redis:
--- ----- - ----------------- --- ------ - ------------------------ -----
注意:其中 port
和 host
分别为 redis 服务的端口和主机名,并且连接会在网络连接失败时抛出错误
创建索引
提交文档到 Redisearch 的工作开始之前,需要创建或更新索引。Redisearch 索引的定义可以通过 Redis 的 key-value 存储格式进行查询和修改,创建索引的代码如下所示:
--- ---------- - ---------------------- --- ------ - ------------------------ ------------- --- --- - ------------------ -------------------------------------------- -- ------ ------- ---- ------------------------------------------------------ ------ -------------- -- ------- ------------------------ -------- ----- -------- - --------------------- ---
检索文档
使用以下代码检索文档:
------------------------ ------ ------------ -------- ----- -------- - --------------------- --
该方法会在键值为 “redisearch” 的索引内搜寻包含有关 “Hello Redisearch” 的查询字符串的文档。搜索结果将包括所有匹配的文档及其详细信息。
添加更多字段
可以通过以下代码更新索引并添加更多字段:
------------------------------------------- -- ------ ------ ---- ----------------------------------- ------------------- ------ ------------ ------------------ ----- -- -- ---------- ---------- --
删除文档
可以将文档从索引中删除:
------------------ -------- ----- - --------------------- --- ---- ---------- ---
这将从索引中删除文档 doc1
。
过滤器
过滤器可以在搜索时过滤文档,例如:
------------------------ ------------------ ---------------- -------- ----- -------- - --------------------- --
该方法将查询所有具有 “Redisearch” 标题和包含 “tutorial” 的正文的文档。
聚合
通过以下代码实现按分类字段聚合文档:
--------------------------- - ------------------------------------------------------ -------------------------------------- -- -------- ----- -------- - --------------------- ---
高亮度显示
使用以下代码高亮显示搜索结果的关键字:
--- ------- - - --------- ------ ------------ ----- --------- ----- ------- ---- ---------- - ------- --------- -------- ----- ------------ ------------ - -- ------------------------ ------ ------------ -------- -------- ----- -------- - --------------------- --
该方法将搜索结果高亮显示,使用 “” 和 “” 标记搜索结果的关键字。
结论
如上所述,Redisearch 给我们带来了一个强大的搜索引擎的能力,以及一些 Elasticsearch 的功能。在使用过程中,我们必须先创建索引、添加文档以及添加、删除、修改字段。我们还介绍了如何使用筛选器筛选结果、聚合数据,并在结果中高亮显示查询的文本。这些功能使 Redisearch 成为一种可行的全文搜索解决方案。
示例代码
完整的演示代码:
--- ---------- - ---------------------- --- ----- - ----------------- --- ------ - ------------------------ ------------- --- --- - ------------------ -------------------------------------------- ------------------------------------------- --- ---- - - ----- -- -------- -------- --- ------- ----- -- --- ----- ------- ----- -- --- ---- - - ----- -- -------- -------- --- ------- ----- -- --- ------ ------- ----- -- --- ---- - - ----- -- -------- -------- --- ------- ----- -- --- ----- ------- ----- -- ----------------------------------------------------------- ----------------------------------------------------------- ----------------------------------------------------------- --- ---------- - ---------- --------------- ----------- -------- ----- -------- - --------------------- --- ------------------------ -------- ----- ---- - ---------------- ----- --
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/74787