说起JAVA的全文检索,最常被提起的应该就是
lucene了
但是吧,数据量一大了,建索引额外耗费系统资源。CT目前是建索引的batch和web系统分离的,全站多线程建索引耗费时间在2小时左右。
而且lucene本身自带的StandardAnalyzer对于中文的分词相当弱智(有专门的中文分词器,稍后日志里面会介绍)。
不想花那么多心思在上面怎么办?怎摸办?
其实lucene姑娘并不是唯一的选择。大多数的RDBMS都是自带有全文检索功能的。
不例外,MYSQL里也有原生态的全文检索支持。而且性能还相当不错,对于百万级别以下的系统是绰绰有余的。
最经常被使用的innoDB是不支持全文检索的,我们需要MyISAM引擎
但是,数据库已经是innoDB了怎摸办? 有个办法是另建一张搜索表。
比如,原先的表是 bbs_topics,可以针对需要建立索引的列,另建一张全文索引表:
CREATE TABLE search_bbs_topics (
`id` INTEGER UNSIGNED NOT NULL,
`title` TEXT NOT NULL,
`author` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE = MyISAM;
ALTER TABLE search_bbs_topics ADD FULLTEXT INDEX fullTextTitle(`title`);
然后INSERT INTO把相应的数据插入表中。
这样,就可以通过 match(列名) against('*匹配数据*' in boolean mode) 的语法来全文检索了。
对于不是很庞大的数据量,结合庖丁的中文分词,效果还是可以的:
相关搜索:
然后还有一个什么问题捏?主表有插入/更新之后,搜索表的数据怎么办?用
触发器可以同步两张表的数据,具体就不多八卦鸟。
发布时间:2008-11-07 23:31:43 | 阅读:349 | 评论:0
分享到:
相关推荐
开放源代码的全文检索引擎Lucene开放源代码的全文检索引擎Lucene开放源代码的全文检索引擎Lucene
全文检索(Lucene)Lucene的PDF
开放源代码的全文检索引擎Lucene.pdf清晰版本
lucenetest.rar,lucene,全文检索,lucene例子 lucenetest.rar,lucene,全文检索,lucene例子lucenetest.rar,lucene,全文检索,lucene例子
Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例
lucene3.5全文检索案例lucene+demo
NULL 博文链接:https://1151461406.iteye.com/blog/2388343
[HeyJava][传智播客]全文检索Lucene源码
本案例通过.Net MVC4基础上,针对Lucene.Net实现全文检索的应用。通过查询数据表中数据,创建索引,通过统一输入框进行全文检索。可以进行对索引的增删改查功能。
基于lucene 2.4简单的一个索引和搜索实例
全文检索Lucene,书中详细介绍了Lucene的使用方法,和用lucene创建索引的demo,还介绍了检索框架Compass的使用,供大家学习参考!
lucene全文检索需要的三个jar包:lucene-analyzers-3.6.1.jar lucene-core-3.6.1.jar lucene-highlighter-3.6.1.jar
全文检索系统(Lucene)LuceneDemoSrc.rar 很好的入门学习资料
全文检索技术 lucene(二) 自己动手写一个搜索引擎
开放源代码的全文检索引擎Lucene终稿.pdf
Lucene实现全文检索