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可提供物理的删除,删除之后便不可恢复。
高级性能{}