/**
* 搜索
*/
@Test
public void search() throws Exception
{
String queryString = "笑话";
// 把要搜索的文本解析成Query
String[] fields = {"name", "content"};
QueryParser queryParser = new MultiFieldQueryParser(fields, analyzer);
Query query = queryParser.parse(queryString);
// 进行查询
IndexSearcher indexSearcher = new IndexSearcher(indexPath);
Filter filter = null;
//
//Sort sort = new Sort(new SortField[]{new SortField("path")}); //升序
Sort sort = new Sort(new SortField[]{new SortField("path", true)}); // 降序
// 相当于一个List集合
TopDocs topDocs = indexSearcher.search(query, filter, 10000,sort);
System.out.println("总共有[" + topDocs.totalHits + "]条匹配结果");
// 打印结果
for (ScoreDoc scoreDoc : topDocs.scoreDocs)
{
int docSn = scoreDoc.doc;// 文档内部编号
Document doc = indexSearcher.doc(docSn); // 根据编号取出相应的文档
File2DocumentUtils.printDocumentInfo(doc);
}
System.out.println("总共有[" + topDocs.totalHits + "]条匹配结果");
}