lucene的一个入门例子.txt

来自「这是一个用Lucene作的一个简单的入门的例子,分几步介绍Lucene的基本使用」· 文本 代码 · 共 66 行

TXT
66
字号
1.定义StandardAnalyzer,IndexWriter对象
StandardAnalyzer analyzer = new StandardAnalyzer(stopStrs);
IndexWriter indexWriter = new IndexWriter("e:\\index", analyzer, true);

2.定义Document对象
Document doc = new Document(); //
doc.add(new Field("id", "Lucene", Field.Store.YES, Field.Index.NO));
doc.add(new Field("text", "Lucene入门与使用", Field.Store.YES,Field.Index.TOKENIZED));

3.对IndexWrite进行操作
indexWriter.addDocument(doc);  
indexWriter.optimize();
indexWriter.close();

4.定义IndexSearcher,QueryParser 和Query 对象
IndexSearcher indexSearcher = new IndexSearcher("e:\\index");
QueryParser queryParser = new QueryParser("text", analyzer);
Query query=queryParser.parse("Lucene入门与使用");

5.取得结果
Hits hits  = indexSearcher.search(query);
doc = hits.doc(i);
String id = doc.get("id");

下面是具体实现:
public static void main(String[] args) throws IOException, ParseException {
Analyzer analyzer = new StandardAnalyzer();
String keyWords = "开源软件";
IndexWriter indexWriter = new IndexWriter("e:\\index", analyzer, true);
Document docItem = new Document();
docItem.add(new Field("title", "Lucene入门与使用", Field.Store.YES,
				Field.Index.NO));
docItem.add(new Field("content", "Lucene是一个开源软件,应用广泛...",
				Field.Store.YES, Field.Index.TOKENIZED));

indexWriter.addDocument(docItem);

indexWriter.optimize();

indexWriter.close();

IndexSearcher indexSearcher = new IndexSearcher("e:\\index");

QueryParser queryParser = new QueryParser("content", analyzer);

Query query = queryParser.parse(keyWords);

Hits hits = indexSearcher.search(query);

Document hitDoc = null;

for (int i = 0; i < hits.length(); i++) {

hitDoc = hits.doc(i);

String title = hitDoc.get("title");
System.out.println("结果: " + keyWords + " 在文章:" + title);
		}

indexSearcher.close();

	}

	

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?