对已经创建好的索引库进行检索
/**
* 利用关键词对索引进行查询* <功能详细描述>
* @param keyword 搜索条件
* @param indexPath 索引路径
* @throws IOException
* @throws ParseException
* @see [类、类#方法、类#成员]
*/
public void search(String keyword, String indexPath) throws IOException, ParseException
{
//創建分詞器
// Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
Analyzer analyzer = new PaodingAnalyzer();
TokenStream token = analyzer.tokenStream("content", new StringReader(keyword));
TermAttribute attribute = token.getAttribute(TermAttribute.class);
while (token.incrementToken())
{
System.out.println(attribute.term());
}
//获取索引目录
Directory directory = FSDirectory.open(new File(indexPath));
//创建搜索类
IndexSearcher searcher = new IndexSearcher(directory);
//
QueryParser parser = new QueryParser(Version.LUCENE_30, "content", analyzer);
//创建query对象
Query query = parser.parse(keyword);
TopDocs hits = searcher.search(query, 10);
System.out.println("topDocs:" + hits.totalHits);
ScoreDoc[] scoreDocs = hits.scoreDocs;
for (int i = 0; i < scoreDocs.length; i++)
{
ScoreDoc sdoc = scoreDocs[i];
Document document = searcher.doc(sdoc.doc);
System.out.println("content:" + document.get("content"));
}
searcher.close();
}