redis-search4j是一款基于redis的搜索组件
特点
1.基于redis,性能高效
2.实时更新索引
3.支持Suggest前缀、拼音查找(AutoComplete功能)
4.支持单个或多个分词搜索
5.可根据字段进行结果排序
环境
1.jdk 1.6+
2.redis 2.2+
依赖包
1.Jedis-2.1.0
2.commons-pool-1.6.jar
3.IKAnalyzer-3.2.8.jar
4.pinyin4j-2.5.0.jar,已内置,无需添加
原理:参考
huacn lee的
Rails App 运用 Redis 构建高性能的实时搜索
示例片段
//使用内置的全局线程池,也可以自己实现jedis实例
JedisHolder holder=JedisHolder.singleton();
JedisPool jp=holder.getJedisPoolInstance("localhost");
Jedis jedis=jp.getResource();
//jedis.select(3);
//添加索引
IndexWriter iw=new IndexWriter(jedis);
//addIdAndIndexItem(id,"切分后的字符串,中间以“|”分隔");
iw.addIdAndIndexItem("1","Ruby|on|Rails|为什么|什么|如此|高效");
//需要排序的item
iw.addNeedSortItem("price","23.9");
iw.addNeedSortItem("date","2012");
iw.addNeedSortItem("author","Klein");
iw.writer();
iw=new IndexWriter(jedis);
iw.addIdAndIndexItem("2","Ruby|编程|入门|应该|看|什么");
iw.addNeedSortItem("price","12.9");
iw.addNeedSortItem("date","2011");
iw.addNeedSortItem("author","Kevin");
iw.writer();
iw=new IndexWriter(jedis);
iw.addIdAndIndexItem("3","Ruby|和|Python|什么|那个|更好");
iw.addNeedSortItem("price","34.9");
iw.addNeedSortItem("date","2009");
iw.addNeedSortItem("author","Ben");
iw.writer();
iw=new IndexWriter(jedis);
iw.addIdAndIndexItem("4","做|Rubies|开发|应该|用|什么|开发|工具|比较好");
iw.addNeedSortItem("price","24.9");
iw.addNeedSortItem("date","2012");
iw.addNeedSortItem("author","Good");
iw.writer();
//搜索
IndexSearch is=new IndexSearch(jedis);
System.out.println(is.search("Ruby","什么"));
System.out.println(is.search("price", IndexSearch.DESC, "Ruby","什么"));
jp.returnResource(jedis);//jedis放回pool中
//输出结果: [1, 2, 3] [3, 1, 2]
AutoComplete功能
下载female-names.txt
添加
Suggest s=new Suggest(jedis);
//读取female-names.txt循环添加数据
s.write(word);
查找
SuggestSearch ss=new SuggestSearch(redis);
ss.search("be");
返回结果
[bea, beatrice, beatrisa, beatrix, beatriz, bebe, becca, becka, becki, beckie]
分享到:
相关推荐
《Redis-Search4J:深度探索全文搜索与数据存储的结合》 Redis-Search4J是基于Redis数据库的全文搜索引擎,它为Java开发者提供了一种高效、便捷的方式来实现对存储在Redis中的数据进行复杂的文本搜索。这个开源项目...
redis-search4j是一款基于redis的搜索组件。 特点 1.基于redis,性能高效 2.实时更新索引 3.支持Suggest前缀、拼音查找(AutoComplete 功能) 4.支持单个或多个分词搜索 5.可根据字段进行结果排序 环境 1.jdk 1.6+ 2....
描述中的 "redis-search4j" 指的是 Redis Search 的 Java 客户端库,它允许 Java 开发者轻松地在他们的应用中集成 Redis Search 功能。使用这个库,开发者可以创建、更新索引,执行搜索查询,以及管理 RediSearch ...
Java社区系统源码并提供详细的开发文档和配套教程,包含帖子、评论、私信、系统通知、点赞、关注、搜索、用户设置、数据...日志:SLF4J(日志接口) + Logback(日志实现) 前端: Thymeleaf Bootstrap 4.x Jquery Ajax
Log4J | 日志组件 | [http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/) Swagger2 | 接口测试框架 | [http://swagger.io/](http://swagger.io/) sequence | 分布式高效ID生产 | ...
项目简介基于SpringBoot 2.x整合各种常用开发工具,包括但不限于Redis,MyBatisPlus,RocketMQ,RabbitMQ,Elasticsearch,Quartz,Xxl-Job,Kafka等。参考教程序号文章标题000102030405060708091011121314...
**日志管理**是软件开发中不可或缺的部分,SpringBoot默认集成了Logback或Log4j2作为日志系统。开发者可以根据需要自定义日志级别,输出格式,甚至存储位置。此外,SpringBoot的日志系统还可以与其他日志收集工具...
本项目是一款基于Spring Cloud架构的Mall4j微服务B2B...该系统整合了Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch和minio等先进技术,旨在构建一个高效、可靠的电商平台。官网:https://www.mall4j.com
Java生态研究( Spring Boot :fire: + Redis :fire: +达博 :fire: + RocketMQ :fire: + Elasticsearch :fire: ) Spring使Java简单,Spring Boot使Spring简单。 缓存,NoSQL数据库,分布式锁,位图 / 分布式RPC...
- Logback+Slf4j多环境日志 - i18n - Maven Multi-Module - WebSocket - ElasticSearch # 功能们: ## 用户模块 - 获取图片验证码 - 登录:解决重复登录问题 - 注册 - 分页查询用户信息 - 修改用户信息 ## 站内...
在日志观测时,需要修改elasticsearch_home/conf/log4j2.properties文件,将其设置为debug级别。然后,可以在elasticsearch_home/conf/elasticsearch.yml文件中配置的日志路径文件夹下查看IK加载热词的日志信息。 ...
- Log4j提供日志记录功能。 4. **特性与优势**: - 模块化设计,可以根据需求自由拆分和组合,支持分布式部署。 - 集成Shiro进行权限控制,可以实现按钮级、方法级权限控制。 - 使用Jedis和Ehcache进行缓存管理...
日志系统采用的是Log4j2 slf4j 存储在mongoDB中 REST API 风格的URL 以及事务的完整支持 使用RabbitMQ作为消息总线 目前使用的是借鉴了AG-admin自实现的以JWT为基础的权限方案 使用Spring Cloud
4. **jedis-2.9.0.jar**: Jedis是Redis的Java客户端,Redis是一个内存数据结构存储系统,可用作数据库、缓存和消息中间件。在字典切分场景中,Jedis可能用于存储和检索大型字典数据,提高切分效率。 5. **commons-...
包括maven、git、Intellij IDEA、Redis、WebSocket、shiro、quartz、ElasticSearch、docker、activemq、rabbitmq、SpringCloud分布式和集群、oracle、mysql等数据库教程、微信登录、java web技术栈面试题、log4j、...
8)、日志组件使用SLF4J和Logback。 9)、调度组件使用Quartz。 10)、验证码使用Jcaptcha。 11)、Web Service使用CXF。 12)、SQL监控使用P6SPY。 13)、JS和CSS压缩使用YUI Compressor。 14)、JAVA代码混淆使用...
Log4J - **简介**:一个流行的日志记录框架。 - **链接**:[http://logging.apache.org/log4j/1.2/](http://logging.apache.org/log4j/1.2/) - **核心特性**: - 日志记录 - 输出格式化 - 灵活的日志级别 #####...
SLF4J 日志框架 Lombok 简化对象封装工具 胡图尔 Java工具包类库 Java邮件 短信发送工具 前端技术 技术 说明 官网 来ui 经典前端前端UI框架 胸腺 模板引擎 jQuery查询 JavaScript函数库 开发环境 工具 版本号 ...
Swagger + Knife4j 接口文档 自定义权限注解 + 全局校验 全局跨域处理 长整数丢失精度解决 多环境配置 工具类: Easy Excel 表格处理 Hutool 工具库 Apache Commons Lang3 工具类 Lombok 注解 数据存储: MySQL ...