JAVA 全文检索的技术解决
JAVA 全文检索的技术解决
目前JAVA 全文检索的解决一般采用LUCENE,技术相对比较成熟.
主要技术点:
1 对WORD,EXCEL,PPT,RTF,PDF,TXT,HTML,XML进行文本转换.
网上有一些现成的资源可以利用.象POI,PDFBOX,JXL都可以进行处理
但是,如果想在系统中成熟使用,还比较困难.主要原因是
A) 中文及其他双字节语言的解码问题.
B) 象poi本身不太成熟,对WORD,EXCEL的解析并不好,所以并不打算用POI解决这二者的问题.
RTF可以用SUN的现成包解决,主要解决的中文乱码问题.
PPT 可以用POI来解决,但是不能用HSLF的方式做,HSLF没有现成的JAR,源代码编译通不过.用HSDF来解决.
需要考虑的是双字节码的语言,目前网上的例子没有能够解决中文的问题.主要是PPT的存储采用的UTF16-BE的方式.对类型4000和4008进行单独处理.现在还没有考虑4026的情况,4026 是CString类型.详细的类型定义在HSLF中有.
HTML不能采用HTMLPARSER来做,经常出错.用OA现存的HTML解析工具就可以了.
PDFBOX 对中文处理不好.
对String类型getByte()的使用,对于流字节如果getBytes()没有处理好,乱码问题比较严重.
2 LUCENE的考虑
A 什么时候建立索引,是每次每档的新建和修改都进行处理,还是定时处理.
B 需要测试LUCESE 索引的线程安全性,对于J2EE程序, 会同时有很多线程对索引进行增加和修改.
这种情况一定要考虑并发性.
3 中文分词
4 对索引库的规划.
5 查询结果的加亮显示.
6 对于非指定文件的异常处理.如用WORD解析的是EXE文件,程序不能出错.
搜索更多相关主题的帖子:
JAVA 全文 检索 技术 解决