redissearch简介
所属分类 redis
浏览量 22
RedisSearch(现在称为 RediSearch)是 Redis 的一个强大的模块,
它为 Redis 提供了全文搜索、自动完成、聚合和复杂查询功能
通过这个模块,你可以在 Redis 中构建高性能的搜索索引,而不需要额外的搜索引擎(如 Elasticsearch)
核心功能
全文搜索:支持对文本内容进行分词和搜索
二级索引:为 Redis 数据结构(如 Hash 和 JSON)创建索引
自动完成:实现搜索框的实时建议功能
聚合查询:支持分组、统计和计算
地理搜索:基于地理位置的查询
向量搜索:支持向量相似度搜索(用于 AI 应用)
应用场景
内容搜索:博客、论坛、电商产品搜索
自动完成:搜索框的实时建议
实时分析:结合 Redis 的实时数据处理能力
地理位置搜索:基于位置的服务(LBS)
向量搜索:图像、文本等嵌入向量的相似度搜索
基本使用示例
1. 安装和启用 RediSearch
首先需要安装 Redis 并加载 RediSearch 模块 如果你使用 Docker,可以这样启动:
docker run -p 6379:6379 redislabs/redisearch:latest
2. 创建索引
以下是使用 Redis CLI 创建一个简单的文章索引的示例:
# 创建一个名为articles的FT索引,包含title和content字段
FT.CREATE articles
ON HASH
PREFIX 1 "article:"
SCHEMA
title TEXT WEIGHT 5.0
content TEXT
published_at NUMERIC SORTABLE
3. 添加文档到索引
# 添加一个文章到索引
HSET article:1
title "RedisSearch快速入门"
content "RediSearch是Redis的一个强大模块..."
published_at 1690000000
4. 执行搜索查询
# 搜索标题中包含"RedisSearch"的文章
FT.SEARCH articles "title:RedisSearch"
# 带分页的搜索
FT.SEARCH articles "快速入门" LIMIT 0 10
# 更复杂的查询(搜索内容中包含Redis且发布时间在2023年之后)
FT.SEARCH articles "@content:Redis @published_at:[1672531200 +inf]"
5. 自动完成示例
# 添加建议词
FT.SUGADD autocomplete:articles "Redis教程" 100
FT.SUGADD autocomplete:articles "Redis集群配置" 80
# 获取建议
FT.SUGGET autocomplete:articles "Redis"
与编程语言集成
大多数 Redis 客户端都支持 RediSearch 命令,以下是使用 Python 的 Redis-py 客户端的示例:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 创建索引
r.execute_command('FT.CREATE', 'articles',
'ON', 'HASH',
'PREFIX', '1', 'article:',
'SCHEMA', 'title', 'TEXT', 'WEIGHT', '5.0',
'content', 'TEXT',
'published_at', 'NUMERIC', 'SORTABLE')
# 添加文档
r.hset('article:1', mapping={
'title': 'RedisSearch快速入门',
'content': 'RediSearch是Redis的一个强大模块...',
'published_at': 1690000000
})
# 搜索
results = r.execute_command('FT.SEARCH', 'articles', '快速入门')
print(results)
上一篇
下一篇
《大数据数学基础(Python语言描述)》 笔记
LangChain原理简介
一些轻量级的RAG开发框架
大模型面试题 200 问
RAG 7大核心概念
杭州市民卡预付账卡户和电子钱包账户区别