public void search(Query query) throws Exception {
// 创建目录对象
Directory directory = FSDirectory.open(new File("C:\\tmp\\indexDir"));
// 索引的读取对象
IndexReader indexReader = DirectoryReader.open(directory);
// 索引的搜索工具
IndexSearcher searcher = new IndexSearcher(indexReader);
// 尝试查询,1-查询对象,2-查询的条数
// 返回的是前n条文档的对象,topDocs:包含文档的总条数,文档的得分数组
TopDocs topDocs = searcher.search(query, 10);
System.out.println("搜索的命中总条数:" + topDocs.totalHits);
// 获取得分文档的数组,得分文档包含文档编号以及得分
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for (ScoreDoc scoreDoc : scoreDocs) {
System.out.println("文档编号" + scoreDoc.doc);
System.out.println("文档得分" + scoreDoc.score);
// 根据编号查询文档
Document document = indexReader.document(scoreDoc.doc);
System.out.println(document.get("id"));
System.out.println(document.get("title"));
}
}
[AppleScript] 纯文本查看 复制代码 /** |
@Test
public void testWildCardQuery() throws Exception {
// 查询条件对象(通配符
// ?:通配一个字符
// *:通配多个字符
Query query = new WildcardQuery(new Term("title", "*歌*"));
search(query);
}
[AppleScript] 纯文本查看 复制代码 @Test |
[AppleScript] 纯文本查看 复制代码 @Test |
[AppleScript] 纯文本查看 复制代码 @Test |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |