LUCENE 搜索

根据在PICC财险项目上搜索的需求,决定使用Lucene3.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表示目录,有了目录可以用IndexWriterwrite一个Document然后关闭writer就行了。

所有的信息存储在Document中,Document是文档的意思,由Filed组成,field被称为域,域包含了一些信息,如能被搜索到,但是不存储,是否建立索引(这个过程又称为是否分词,分词之后将按规则分,或跟原来不一样)等

Field存储是按K-V的形式,"content":"dsfsdf社会主义好",store,analyzer之类的

这个过程是建立索引的过程(索引建立完成之后,一定要关闭writer对象,如果不关闭,将会生成一个writer.lock)文件,将其锁着。

读取索引常用的API如下:

Directory还是表示目录,IndesSearchSearch一个Query对象返回一个scoreDoc[]数组,search有个叫doc的方法,刚好将数组遍历传过去,便得到对应的Document对象,有一此对象只需要getField即可

读取的重点在于Query,总条数在TopDocs.totalHits中.

维护索引常用到的API如下:

从IndexReader中有一些API可提供Lucene的删除,这个不是物理删除,还可以恢复

从IndexWriter中一些API可提供物理的删除,删除之后便不可恢复。

高级性能{}

相关推荐