Lucene初步搜索

时间:2023-03-10 04:25:12
Lucene初步搜索

Lucene在创立索引后,要进行搜索查询

搜索大概需要5部,

1,读取索引。

2,查询索引。

3,匹配数据。

4,封装匹配结果。

5,获取需要的值。

语言表达能力不好,大概就是分着几部吧。

/**
* 搜索
*/
public void searcher(){
//1,创建Directory
Directory directory = null;
IndexReader reader = null;
try {
directory = FSDirectory.open(Paths.get("D://lucene//index"));
//2,创建IndexReader
reader = DirectoryReader.open(directory);
//3,根据IndexReader创建IndexSearcher
IndexSearcher searcher = new IndexSearcher(reader);
//4,创建搜索的query
QueryParser parser = new QueryParser("content",new StandardAnalyzer());
Query query = parser.parse("SELECT");
//5,根据search搜索并返回TopDocs
TopDocs tds = searcher.search(query, 10);
//6,根据TopDocs获取ScoreDoc对象
ScoreDoc[] sds = tds.scoreDocs;
for(ScoreDoc sd:sds){
//7,根据search和ScordDoc对象获取具体的Document对象
Document d = searcher.doc(sd.doc);
//8,根据Document对象获取需要的值
System.out.println(d.get("filename")+"["+d.get("path")+"]");
} } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

搜索的对象“SELECT”,执行,查询结果如下

Lucene初步搜索