資源描述:
《全文檢索例子》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、實(shí)用標(biāo)準(zhǔn)文案本文由美白面膜排行榜www.tompall.com整理全文檢索例子lucene3搜索引擎,索引建立搜索排序分頁(yè)高亮顯示,IKAnalyzer分詞publicclassLuceneService{privatefinalLoglogger=LogFactory.getLog(LuceneService.class);privatefinalStringdirPath="d:/temp/user";Analyzeranalyzer=newIKAnalyzer();Directorydirectory=null;IndexWriterwriter=null;
2、IndexSearcherindexSearcher=null;privatevoidconfirmDirs(){FileindexFile=newFile(dirPath);if(!indexFile.exists()){indexFile.mkdirs();}if(!indexFile.exists()
3、
4、!indexFile.canWrite()){if(logger.isDebugEnabled())logger.error("索引文件目錄創(chuàng)建失敗或不可寫入!");}}publicvoidinit(){精彩文檔實(shí)用標(biāo)準(zhǔn)文案confirmDirs();try
5、{Filef=newFile(dirPath);directory=FSDirectory.open(f);}catch(Exceptione){if(logger.isDebugEnabled()){logger.error("解除索引文件鎖定失敗!"+e.getCause());}}}publicvoidcreateIndex(List<User>userList){init();try{//第一個(gè)參數(shù)是存放索引目錄有FSDirectory(存儲(chǔ)到磁盤上)和RAMDirectory(存儲(chǔ)到內(nèi)存中),//第二個(gè)參數(shù)是使用的分詞器,第三個(gè):true,建
6、立全新的索引,false,建立增量索引,第四個(gè)是建立的索引的最大長(zhǎng)度writer=newIndexWriter(directory,analyzer,true,IndexWriter.MaxFieldLength.LIMITED);writer.setMergeFactor(500);writer.setMaxBufferedDocs(155);精彩文檔實(shí)用標(biāo)準(zhǔn)文案writer.setMaxFieldLength(Integer.MAX_VALUE);writeIndex(writer,userList);writer.optimize();writer.clos
7、e();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicList<User>search(Stringkeyword){FileindexFile=newFile(dirPath);if(!indexFile.exists()){returnnull;}Directorydir;try{dir=FSDirectory.open(indexFile);indexSearcher=newIndexSearcher(dir);indexSearche
8、r.setSimilarity(newIKSimilarity());//單字段查詢,單條件查詢//Queryquery=IKQueryParser.parse("userInfo",keyword);精彩文檔實(shí)用標(biāo)準(zhǔn)文案//多字段,單條件查詢String[]fields=newString[]{"userInfo","parameter1"};Queryquery=IKQueryParser.parseMultiField(fields,keyword);//多字體,單條件,多BooleanClause.Occur[]flags,查詢條件的組合方式(Or/And
9、)//BooleanClause.Occur[]數(shù)組,它表示多個(gè)條件之間的關(guān)系,//BooleanClause.Occur.MUST表示and,//BooleanClause.Occur.MUST_NOT表示not,//BooleanClause.Occur.SHOULD表示or.//String[]fields=newString[]{"userInfo","parameter1"};//BooleanClause.Occur[]flags=new//BooleanClause.Occur[]{BooleanClause.Occur.MUST,BooleanCl
10、ause.