首页  

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大核心概念

杭州市民卡预付账卡户和电子钱包账户区别