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了

 

posted @   意犹未尽  阅读(101)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2022-11-09 一次基于binlog恢复数据的经验
2021-11-09 Spring-security源码-Filter之SecurityContextPersistenceFilter(十一)
2021-11-09 spring-security源码-Filter之WebAsyncManagerIntegrationFilter(十)
点击右上角即可分享
微信分享提示