資源簡介
使用java技術的全文檢索,企業級應用,很不錯啊,哈哈哈哈

代碼片段和文件信息
package?com.zyt.lucene;
import?java.io.BufferedReader;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.IOException;
import?java.io.InputStreamReader;
import?org.apache.lucene.analysis.Analyzer;
import?org.apache.lucene.analysis.standard.StandardAnalyzer;
import?org.apache.lucene.document.Document;
import?org.apache.lucene.document.Field;
import?org.apache.lucene.document.Field.Index;
import?org.apache.lucene.document.Field.Store;
import?org.apache.lucene.index.IndexWriter;
import?org.apache.lucene.queryParser.MultiFieldQueryParser;
import?org.apache.lucene.queryParser.QueryParser;
import?org.apache.lucene.search.IndexSearcher;
import?org.apache.lucene.search.Query;
import?org.apache.lucene.search.ScoreDoc;
import?org.apache.lucene.search.TopDocs;
import?org.apache.lucene.store.Directory;
import?org.apache.lucene.store.FSDirectory;
import?org.junit.Test;
public?class?Lucene01?{
String?filePath?=?“E:\\Workspaces\\MyEclipse?9\\lucene_demo01\\resource\\my.txt“;
String?indexPath?=?“E:\\Workspaces\\MyEclipse?9\\lucene_demo01\\lucenIndex“;
Analyzer?analyzer?=?new?StandardAnalyzer();
@Test
public?void?createIndex()?throws?Exception?{
File?resourceFile?=?new?File(filePath);
/*
Document?doc?=?getDocument(resourceFile);
IndexWriter?indexWriter?=?new?IndexWriter(indexPath?analyzer?true);
*/
Directory?dir?=?FSDirectory.getDirectory(indexPath)?;
Document?doc?=?getDocument(resourceFile);
IndexWriter?indexWriter?=?new?IndexWriter(dir?analyzer?true);
indexWriter.addDocument(doc);
indexWriter.close();
}
@Test
public?void?search()?throws?Exception?{
String?queryString?=?“example“;
String[]?fields?=?{?“name“?“content“?};
QueryParser?queryParser?=?new?MultiFieldQueryParser(fields?analyzer);
Query?query?=?queryParser.parse(queryString);
IndexSearcher?indexSearcher?=?new?IndexSearcher(indexPath);
TopDocs?topDocs?=?indexSearcher.search(query?null?10000);
System.out.println(“總共有【“?+?topDocs.totalHits?+?“】條匹配結果“);
for?(ScoreDoc?scoreDoc?:?topDocs.scoreDocs)?{
int?docSn?=?scoreDoc.doc;?//?文檔內部編號
Document?searchResultDoc?=?indexSearcher.doc(docSn);?//?根據文檔內部編號取出相應的文檔
print(searchResultDoc);
}
}
private?static?Document?getDocument(File?file)?throws?IOException?{
Document?document?=?new?Document();
document.add(new?Field(“name“?file.getName()?Store.YES??Index.TOKENIZED));
document.add(new?Field(“content“?readFile(file)?Store.YES?Index.TOKENIZED));
document.add(new?Field(“size“?String.valueOf(file.length())?Store.YES?Index.NO));
document.add(new?Field(“path“?file.getAbsolutePath()?Store.YES?Index.NO));
return?document;
}
private?static?String?readFile(File?file)throws?IOException{
StringBuffer?buff?=?new?StringBuffer();
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(new?FileInputStream(file)));
String?temp?=?““;
while?((temp?=?reader.readLine())?!=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????28060??2011-11-17?17:17??jive中的全文檢索\jive中的全文檢索.mmap
?????文件?????952712??2011-11-18?09:13??jive中的全文檢索\jive中的全文檢索.pptx
?????文件????????583??2011-11-15?15:49??jive中的全文檢索\lucene_demo01\.classpath
?????文件????????389??2011-11-15?14:58??jive中的全文檢索\lucene_demo01\.project
?????文件????????629??2011-11-15?14:58??jive中的全文檢索\lucene_demo01\.settings\org.eclipse.jdt.core.prefs
?????文件???????5391??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\bin\com\zyt\lucene\Lucene01.class
?????文件??????80222??2011-11-15?15:00??jive中的全文檢索\lucene_demo01\lib\lucene-analyzers-2.3.0.jar
?????文件?????664675??2011-11-15?14:59??jive中的全文檢索\lucene_demo01\lib\lucene-core-2.3.0.jar
?????文件??????28499??2011-11-15?15:00??jive中的全文檢索\lucene_demo01\lib\lucene-highlighter-2.3.0.jar
?????文件?????????20??2011-11-15?17:13??jive中的全文檢索\lucene_demo01\lucenIndex\segments.gen
?????文件?????????45??2011-11-15?17:13??jive中的全文檢索\lucene_demo01\lucenIndex\segments_3
?????文件???????2630??2011-11-15?17:13??jive中的全文檢索\lucene_demo01\lucenIndex\_0.cfs
?????文件???????1203??2011-11-15?15:03??jive中的全文檢索\lucene_demo01\resource\my.txt
?????文件???????4285??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\src\com\zyt\lucene\Lucene01.java
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\bin\com\zyt\lucene
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\src\com\zyt\lucene
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\bin\com\zyt
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\src\com\zyt
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\bin\com
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\src\com
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\.settings
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\bin
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\lib
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\lucenIndex
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\resource
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01\src
?????目錄??????????0??2011-11-18?09:09??jive中的全文檢索\lucene_demo01
?????目錄??????????0??2011-11-18?09:13??jive中的全文檢索
-----------?---------??----------?-----??----
??????????????1769343????????????????????28
............此處省略1個文件信息
- 上一篇:java實現流量控制流量控制
- 下一篇:基于JSP和mysql的火車票售票系統
評論
共有 條評論