lucene中查询索引库代码入门

	// 查询索引库代码
	@Test
	public void queryIndex() throws Exception {
		// 准备索引库位置目录
		String path = "F:\\indexs";
		// 读取索引
		DirectoryReader reader = DirectoryReader.open(FSDirectory
				.open(new File(path)));
		// 使用indexSearcher来搜索索引库
		IndexSearcher indexSearcher = new IndexSearcher(reader);
		// 准备查询条件
		String qName = "基础";
		// 创建查询解析器
		QueryParser qParser = new QueryParser("title", new StandardAnalyzer());
		// 解析查询字段,使用基本分词器算法,给你的查询条件在进行分词
		Query query = qParser.parse(qName);
		// 查询前10条记录,返回匹配度最高的10条记录
		// 返回文档概要信息:文档ID,文档的得分:得分越高,匹配度越高
		TopDocs topDocs = indexSearcher.search(query, 10);
		// 获取文档的命中数
		int totalHits = topDocs.totalHits;
		System.out.println("文档的名字数量:" + totalHits);
		// 获取文档得分数组
		ScoreDoc[] scoreDocs = topDocs.scoreDocs;
		//遍历得分数组
		for (ScoreDoc sdoc : scoreDocs) {
			//获取文档id/
			int docID = sdoc.doc;
			//获取文档得分
			float score = sdoc.score;
			//更据文档id查询文档对象
			Document doc = indexSearcher.doc(docID);
			//获取id,title,context的值
			String id = doc.get("id");
			String title = doc.get("title");
			String content = doc.get("content");
			System.out.println("文档ID"+docID+"||文档得分:"+score);
			System.out.println("ID"+id+"||title:"+title+"||content"+content);
		}
	}
}

IndexSearcher重要对象 ,

存入和检索的分词器要相同


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值