现在都说大数据量,数据量庞大的数据直接访问数据库不是一般的慢,那时就得使用高效率的文件索引
刚接触Lucene时已经出到4.4版本
(现在都4.6了,5.0也快出了),当然是Down了最新版本,使用之下发现数据才800万查询效率非常低
,然后拼命的优化优化优化
,没什么效果
Google很久之后看了一编Lucene 4.3与3.5版本的比较,觉得博主测试得很详细
,看来4.x版本的Lucene还没3.5的好,当然最后还是牺牲点磁盘换取更高的效率,各位可以看看测试:
Lucene4.3和Lucene3.5性能对比(一)
Lucene4.3和Lucene3.5性能对比(二)
然后--这个
配置索引
一般的Web项目,Spring容器管理Bean,数据库连接现为Oracle的JDBC
首页上有个单次效率测试和简单的压力测试(因为这里主要是服务器端,所以只配置了Servlet)(web.xml)
对外系统调用也有Hessian和HttpInvoker远程服务(remoting-servlet.xml)
使用quartz定时器控制索引的全量和增量线程(applicationContext-service.xml)
再说说这个配置方式的
强大之处(config.xml解说)~~~
1.数据库URL、用户名、密码这些没神马好说的啦
2.自定义索引文件存放路径:index.dir
3.全量建索引时并发线程池大小:indexMaxThread
4.索引文件数量:indexMaxNumSegments(这个数量视全部索引大小来定,一般在50~200左右速度比较快)
5.
是否把索引内容加载进内存:useRAMDirectory(俺觉得这是本Project之亮点,硬盘不怎么给力或者索引本身不算大大,而内存又挺充足的,可以试试这个开关,体验飞一般的赶脚)
6.
一般索引这类服务都是很重要的,那就得做负载均衡和热备份啦:tomcatFlag,otherTomcatFlag(支持几个Tomcat同时对某数据库表进行索引,简单配置一下本身Tomcat代表的标识以及其它Tomcat标识,又一亮点)
7.
重点就是下面索引的具体配置,一个应用支持多个毫无关系的索引,每索引又多库表(比如:可以配置地图的点、线、区域三张表归为一个地图索引;又可以把机房、局站等资源类型的数据配置为另一个独立的索引,在同一个Tomcat上运行)
.
说到Lucene,那就必须得带着分词,本文使用的分词是自已写的阶乘切词算法,不管字符串是中文还是数字、字母,可以按顺序1、2、3、4个字的切成词,最长分词可以在代码设置,比之Standardanalyzer查询准确,又不用像庖丁哪样要字典库切词。具体可以查看InforesTokenizer类
对数据库的要求:要做索引的表,首先要做一个触发器,新增、修改、删除数据时都同步到日志表中,日志表包括字段:
主键:LOGID---NUMBER---
操作类型:OPER_TYPE---NUMBER---新增、修改、删除,数值可以自己定义
记录原表主键:XXX_ID---一般为NUMBER---视自己情况
Tomcat标识字段:TOMCAT_1---NUMBER(1)---如果还有其它Tomcat在做负载均衡,每个Tomcat增加一个自己标识的字段
最后贴上代码,好的话,点个赞噢~~~
分享到:
相关推荐
基于lucene技术的增量索引,实现索引的首次创建,动态增删改
基于lucene的索引与搜索 基于lucene的索引与搜索
lucene 对 xml建立索引 建立索引就是怎么简单 呵呵
基于lucene的Swing全文索引构建于查询工具及源程序,有源程序以及做好的工具,非常适合初学者学习学习lucene
基于Lucene的搜索引擎的研究与应用基于Lucene的搜索引擎的研究与应用
Lucene索引器实例Lucene索引器实例Lucene索引器实例Lucene索引器实例
基于lucene 2.4简单的一个索引和搜索实例
Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能. 不过千万别以为Lucene是一个象google那样的搜索引擎,Lucene甚至不是一个应用程序,它仅仅是一个工具,...
1) 提供实时索引的创建、管理 2) Query的创建 详细介绍参照博客:http://blog.csdn.net/xiaojimanman/article/details/20624739 中的介绍
Lucene创建索引,查询索引的简单使用。
Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能. 不过千万别以为Lucene是一个象google那样的搜索引擎,Lucene甚至不是一个应用程序,它仅仅是一个工具,...
Lucene之删除索引 Lucene之删除索引 Lucene之删除索引 http://blog.csdn.net/nupt123456789/article/details/10666105
Lucene索引,知识工程实验报告 Lucene是一个基于java的全文检索工具包,它方便为应用程序添加索引和搜索功能
#资源达人分享计划#
最简单的Lucene建立、搜索索引的方法,工程基于Myeclipse10
Lueene是一个强大的全文索引引擎工具包,应用它可以快速地开发一个搜索引擎。介绍了基于英特 网的中文搜索引擎的系统结构,Lucene的索引和搜索,并且设计实现了一个自己的搜索引擎——易搜中文搜 索引擎。结果表明,...
Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能. 不过千万别以为Lucene是一个象google那样的搜索引擎,Lucene甚至不是一个应用程序,它仅仅是一个工具,...
基于Lucene的全文检索系统研究与开发基于Lucene的全文检索系统研究与开发基于Lucene的全文检索系统研究与开发
基于Lucene的全文检索引擎研究与应用