📄 quicksearcher.java
字号:
package com.ht.lucenedemo;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import java.io.File;
import java.util.Date;
import org.apache.lucene.index.IndexWriter;
import java.io.Reader;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.store.*;
import java.io.FileReader;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.queryParser.QueryParser;
public class QuickSearcher {
public QuickSearcher() {
}
public static void main(String[] args)throws Exception{
File dataDir = new File("D:\\luceneData");
Analyzer luceneAnalyzer = new StandardAnalyzer();
File[] dataFiles = dataDir.listFiles();
Directory indexDir = new RAMDirectory("D:\\luceneIndex");
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
long startTime = new Date().getTime();
for (int i = 0; i < dataFiles.length; i++) {
if (dataFiles[i].isFile() && dataFiles[i].getName().endsWith(".txt")) {
System.out.println("Indexing file " + dataFiles[i].getCanonicalPath());
Document document = new Document();
Reader txtReader = new FileReader(dataFiles[i]);
document.add(Field.Text("path", dataFiles[i].getCanonicalPath()));
document.add(Field.Text("contents", txtReader));
indexWriter.addDocument(document);
}
}
indexWriter.optimize();
indexWriter.close();
long endTime = new Date().getTime();
System.out.println("It takes " + (endTime - startTime) +
" milliseconds to create index for the files in directory "
+ dataDir.getPath());
String queryStr = "索含";
IndexSearcher searcher = new IndexSearcher(indexDir);
Analyzer analyzer = new StandardAnalyzer();
QueryParser parser = new QueryParser("contents" , analyzer);
startTime = new Date().getTime();
Query query = parser.parse(queryStr);
Hits hits = searcher.search(query);
for (int i = 0; i < hits.length(); i++) {
Document document = hits.doc(i);
System.out.println("File: " + document.get("path"));
}
endTime = new Date().getTime();
System.out.println("It takes " + (endTime - startTime)+" milliseconds to query");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -