LUCENE 搜索

根据在PICC 财险项目上搜索的需求,决定使用Lucene 3.0  大概jar 包有lucene-core ,lucene-highleight,lucene-analyzer,lucene-memory,lucene-smartzn 这几个jar包
对这这几个JAR包的解析如下:

1.其中core 是核心JAR包
2.analyzer 是包含分析器的
3.highleight 是做高亮显示的
4.memory 应该是做内存处理的包
5.smart-zn 是中文分析器的包

大概过程分为:
在指定的路径 path="f:/luceneTest/" 的路径中创建文件,然后读取文件。
创建索引常用API 如下:
Directory  表示目录,有了目录可以用 IndexWriter write 一个Document  然后关闭writer 就行了。
所有的信息存储在Document中,Document是文档的意思,由Filed 组成,field 被称为域,域包含了一些信息,如能被搜索到,但是不存储,是否建立索引(这个过程又称为是否分词,分词之后将按规则分,或跟原来不一样)等
Field存储是按K-V 的形式,"content":"dsfsdf社会主义好",store,analyzer 之类的
这个过程是建立索引的过程(索引建立完成之后,一定要关闭writer对象,如果不关闭,将会生成一个writer.lock)文件,将其锁着。
读取索引常用的API如下:
Directory 还是表示目录,IndesSearch Search 一个Query 对象  返回一个scoreDoc[] 数组,search有个叫doc 的方法,刚好将数组遍历传过去,便得到对应的Document 对象,有一此对象只需要getField即可
读取的重点在于Query ,总条数在TopDocs .totalHits 中.

维护索引常用到的API如下:
从IndexReader 中有一些API可提供Lucene的删除 ,这个不是物理删除,还可以恢复
从IndexWriter  中一些API 可提供物理的删除,删除之后便不可恢复。


高级性能{}

猜你喜欢

转载自jknmae.iteye.com/blog/1882510