/**
*
* @author Q.Wong [2010-12-17]
*
*/
public class TestInvoker {
private Logger logger = LogManager.getLogger(TestInvoker.class);
/**
* 索引保存在磁盘目录
*/
@Test
public void testFSDirectory() {
String indexDir = "d:\\temp\\index";
String sourceDir = "d:\\temp\\TestLucene";
String field = "contents";
String keyWord = "河蟹";
Analyzer analyzer = new PaodingAnalyzer();
try {
/** Index **/
IndexWriter writer = IndexManager.getFSDirectoryIndexWriter(
indexDir, analyzer);
long l1 = System.currentTimeMillis();
IndexManager.indexDocs(new File(sourceDir), writer, true);
long l2 = System.currentTimeMillis();
logger.info("Indexed " + writer.numDocs() + " files in ["
+ (l2 - l1) + "] milliseconds.");
writer.optimize();
writer.close();
/** Query **/
IndexReader reader = IndexManager
.getFSDirectoryIndexReader(indexDir);
Searcher searcher = new IndexSearcher(reader);
long l3 = System.currentTimeMillis();
TopDocs resultDocs = QueryManager.doQuery(analyzer, searcher, field, keyWord, 10);
long l4 = System.currentTimeMillis();
logger.info("Found " + resultDocs.totalHits
+ " document(s) matched query '" + keyWord + "' in ["
+ (l4 - l3) + "] milliseconds.");
searcher.close();
reader.close();
QueryManager.resolvedResults(resultDocs, searcher);
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (LockObtainFailedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
/**
* 索引保存在内存
* 查询并高亮关键字
*/
@Test
public void testRAMDirectory() {
String sourceDir = "d:\\temp\\TestLucene\\text.txt";
Directory ramDir = new RAMDirectory();
Analyzer analyzer = new PaodingAnalyzer();
try {
/** Index **/
IndexWriter writer = IndexManager.getRamDirIndexWriter(ramDir,
analyzer);
long l1 = System.currentTimeMillis();
IndexManager.indexDocs(new File(sourceDir), writer, true);
long l2 = System.currentTimeMillis();
logger.info("Indexed " + writer.numDocs() + " files in ["
+ (l2 - l1) + "] milliseconds.");
writer.optimize();
writer.close();
/** Query **/
IndexReader reader = IndexManager.getRamDirIndexReader(ramDir);
QueryManager.doQuery(analyzer, reader, "contents", "河蟹", 10);
reader.close();
} catch (CorruptIndexException e) {
e.printStackTrace();
} catch (LockObtainFailedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (InvalidTokenOffsetsException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
lucene demo and paoding good shuang
lucene简单Demo,附带的文件夹考进C盘就OK
lucene简单demo lucene简单demo lucene简单demo lucene简单demo
可用lucene demo 已经有入门级pdf学习
这是一个lucene中文索引程序,采用paoding分词器,包括建立索引和搜索过程。
本压缩包的主要内容是Lucene分词器的demo版本,可以导入到程序中直接使用,包含Lucene分词使用的pom文件,使用前请注意修改存储地址。
lucene3.5全文检索案例lucene+demo
Lucene入门demo,lucene简单的应用
全文索引工具 开源工具 java编写 lucene的简单demo
lucene-demo-6.6.0.jar
luceneDemo(完整代码) lucene入门 基础类的运用、高亮器的实现、相关度排序
Lucene.Net 搜索Demo,介绍怎么使用Lucene.Net实现桌面搜索
lucene实例(lucene demo)
NULL 博文链接:https://iamcrzay.iteye.com/blog/383742
Lucene Demo 挺全的实例,适合初学者。
lucene全文检索示例 demo+jar包
Lucene全文检索Lucene全文检索Lucene全文检索Lucene全文检索
资源为庖丁解牛分词法的最新源码以及生成的jar包,支持最新的Lucene3.4以及Lucene3.0以上版本。Jar包为本地生成
这是我通过对Lucene3.3.0源码进行了简单解读,依据应用详细的做了很多Demo,大家可以一道学习。
基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上