查询索引数据的特殊查询

本文介绍了Elasticsearch中进行特殊查询的方法,包括TermQuery用于精确匹配,WildcardQuery支持通配符搜索,FuzzyQuery实现模糊查找,NumericRangeQuery进行数值范围筛选,以及BooleanQuery如何组合多个条件进行复合查询。
摘要由CSDN通过智能技术生成

1.1.1、特殊查询

抽取公用的搜索方法:

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值