?? 視頻文字.txt
字號:
大家好。我系愛迪。今日畀大家一個視頻教程大家。系關于lucene的使用的。
1:建一個索引類。
y_indexer.java
2:建立搜索類
y_searcher.java
好。打開eclipse新建兩個類
y_indexer
y_searcher
關于源碼。我已同視頻一起打包了。
而家開始!睇我操作啦!!
要建立兩個folder一個是y一個是yuyang yuyang這個folder現在還是空的。等一下運行就會有文件了。運行一下y_indexer這個類先
y是要建立索引的.html文件
yuyang
是索引文件存放的folder
run一下先。正在建立索引中.........
好了。y folder中的.html文件全部都建立索引了。到yuyang這個folder去睇睇先.
睇到沒。索引建立好了。現在就是搜索了。
也run一下先!
然后再建立search類。來search一下剛才所建立的索引
睇到沒。好了。
end..............
QQ:306037774
author:eddy
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
public class Y_searcher {
public List search(){
List searchResult = new ArrayList();//創建一個List接口的一個實例類ArrayList類
try{
Hits hits = null;
String key = "手機短信";
Query query = null;
IndexSearcher searcher = new IndexSearcher("C:\\yuyang");
Analyzer analyzer = new StandardAnalyzer(); //創建一個Analyzer接口的一個實例類StandardAnalyzer
QueryParser qp = new QueryParser("title", analyzer);
query = qp.parse(key);
if (searcher != null) {
Date start=new Date();
hits = searcher.search(query); //遍歷hist結果的length
if(hits.length()==0){
System.out.println("對唔住。沒你想要的結果!");
}
else{
for(int i=0;i<hits.length();i++){
Date end=new Date();
// System.out.println("找到:" + hits.length() + " Totalresult!");
System.out.println("文件的路徑:"+hits.doc(i).get("path"));
// System.out.println("內容:"+hits.doc(i).get("body"));
System.out.println(hits.doc(i).get("title"));
System.out.println("檢索完成,用時" + (end.getTime() - start.getTime()) + "毫秒");
}
}
}
}
catch(ParseException ex){
}
catch(IOException e){
}
return searchResult;
}
public static void main(String args[]){
Y_searcher y_s=new Y_searcher();
y_s.search();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
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.index.IndexWriter;
public class Y_indexer {
public static void main(String[] args) throws Exception {
/* 指明要索引文件夾的位置,這里是C盤的S文件夾下 */
File fileDir = new File("C:\\y");
/* 這里放索引文件的位置 */
File indexDir = new File("c:\\yuyang");
Analyzer luceneAnalyzer = new StandardAnalyzer();
IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer,
true);
File[] textFiles = fileDir.listFiles();
long startTime = new Date().getTime();
//增加document到索引去
for (int i = 0; i < textFiles.length; i++) {
if (textFiles[i].isFile()
&& textFiles[i].getName().endsWith(".html")) {
System.out.println("File " + textFiles[i].getCanonicalPath()
+ "正在被索引....");
String temp = FileReaderAll(textFiles[i].getCanonicalPath(),
"GBK");
System.out.println(temp);
Document document = new Document();
Field FieldPath = new Field("path", textFiles[i].getPath(),
Field.Store.YES, Field.Index.NO);
Field FieldBody = new Field("body", temp, Field.Store.YES,
Field.Index.TOKENIZED,
Field.TermVector.WITH_POSITIONS_OFFSETS);
Field FieldTitle = new Field("title", temp, Field.Store.YES,
Field.Index.TOKENIZED,
Field.TermVector.WITH_POSITIONS_OFFSETS);
document.add(FieldPath);
document.add(FieldBody);
document.add(FieldTitle);
indexWriter.addDocument(document);
}
}
//optimize()方法是對索引進行優化
indexWriter.optimize();
indexWriter.close();
//測試一下索引的時間
long endTime = new Date().getTime();
System.out
.println("這花費了"
+ (endTime - startTime)
+ " 毫秒來把文檔增加到索引里面去!"
+ fileDir.getPath());
}
public static String FileReaderAll(String FileName, String charset)
throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(FileName), charset));
String line = new String();
String temp = new String();
while ((line = reader.readLine()) != null) {
temp += line;
}
reader.close();
return temp;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -