redis-redissearch临时笔记
官方文档
https://redis.io/docs/interact/search-and-query/
底层数据结构支持
HASH
FT.CREATE books-idx ON HASH PREFIX 1 book:details SCHEMA title TEXT categories TAG SEPARATOR ";"
SETbook:details :1 name "test data" tag_ids "1;2;3"
JSON
FT.CREATE itemIdx ON JSON PREFIX 1 item: SCHEMA $.name AS name TEXT $.tag_ids as tag_ids TAG SEPARATOR ","
JSON.SET item:1 $ '{"name":"小明","tag_ids":"1,2,3,4,5,6,13"}'
FT.SEARCH itemIdx '@tag_ids:{5}'
中文支持
FT.ADD itemIdx item:6 1.0 LANGUAGE chinese FIELDS name "我爱广州小蛮腰" tag_ids "1,2,3,4,5,6,13"
误区
其实很多地方往往需要模糊搜索
可以搜索加上** 他会在倒排索引里面去匹配。感觉就像全表扫描了。走倒排索引又有误差
总结
优点
1.针对少量数据,大量IO(读写),可以放到redissearch构建搜索索引
缺点
针对大量数据放到redissearch感觉不合适,分词没有es灵活
我什么时候会选择redissearch
1.少量数据(redis内存支持情况) 大量读写io
2.一些高级查询,比如geo 查附近门店。构建es都引入一个中间件感觉不方便
总的来说数据库不支持的查询,redis支持,并且数据量不大的情况选择redissearch
关于倒排索引
其实倒排索引还是有局限性,很多后端场景是需要模糊查询,不需要分词查询就不上es或者redissearch了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-11-09 一次基于binlog恢复数据的经验
2021-11-09 Spring-security源码-Filter之SecurityContextPersistenceFilter(十一)
2021-11-09 spring-security源码-Filter之WebAsyncManagerIntegrationFilter(十)