最近,需要对项目进行lucene版本升级。而原来项目时基于lucene 3.0的,很古老的一个版本的了。在老版本中中,我们主要用了几个lucene的东西: 1、查询lucene多目录索引。 2、构建RAMDirectory,把索引放到内存中,以提高检索效率。 3、构建Luc ...
最近,需要对项目进行lucene版本升级。而原来项目时基于lucene 3.0的,很古老的一个版本的了。在老版本中中,我们主要用了几个lucene的东西:
1、查询lucene多目录索引。
2、构建RAMDirectory,把索引放到内存中,以提高检索效率。
3、构建Lucene自定义分词。
4、修改Lucene默认的打分算法。
下面,将代码改造前和改造后做一对比:
1. 搜索多索引目录
3.0 构建多索引目录:
1 // 初始化全国索引 2 private boolean InitGlobal(String strRootPath) { 3 try { 4 5 IndexSearcher[] searchers = new IndexSearcher[2]; 6 7 MultiSearcher globalSearcher = null; 8 if (Configution.IsMMap.equalsIgnoreCase("true")) { 9 10 searchers[0] = new IndexSearcher(new RAMDirectory(FSDirectory11 .open(new File(strRootPath + "/" + GLABOL_INDEX))));12 searchers[1] = new IndexSearcher(new RAMDirectory(FSDirectory13 .open(new File(strRootPath + "/" + BUS_INDEX))));14 // searchers[2] = new IndexSearcher(new RAMDirectory(FSDirectory15 // .open(new File(strRootPath + "/" + LU_INDEX))));16 globalSearcher = new MultiSearcher(searchers);17 } else {18 searchers[0] = new IndexSearcher(FSDirectory.open(new File(19 strRootPath + "/" + GLABOL_INDEX)));20 searchers[1] = new IndexSearcher(FSDirectory.open(new File(21 strRootPath + "/" + BUS_INDEX)));22 // searchers[2] = new IndexSearcher(FSDirectory.open(new File(23 // strRootPath + "/" + LU_INDEX)));24 25 globalSearcher = new MultiSearcher(searchers);26 }27 System.out.println("finish Global");28 29 m_mapIndexName2Searcher.put("0", globalSearcher);30 m_mapAdmin2IndexName.put("0", "0");31 32 return true;33 34 } catch (Exception e) {35 e.printStackTrace();36 SearchLog.SearchLog.error("全国索引初始化异常");37 return false;38 }39 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:关于Lucene 3.0升级到Lucene 4.x 备忘
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。