Lucene查询操作
一, Lucene简单查询
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;import com.baifan.lucene.ik.IKAnalyzer6x;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;public class QueryParseTest {public static void main(String[] args)throws ParseException, IOException {String field = "title";Path indexPath = Paths.get("indexdir");Directory dir = FSDirectory.open(indexPath);IndexReader reader = DirectoryReader.open(dir);IndexSearcher searcher = new IndexSearcher(reader);Analyzer analyzer = new IKAnalyzer6x();QueryParser parser = new QueryParser(field, analyzer);parser.setDefaultOperator(QueryParser.Operator.AND);Query query = parser.parse("农村学生"); // 查询关键词System.out.println("Query:" + query.toString());// 返回前10条TopDocs tds = searcher.search(query, 10);for (ScoreDoc sd : tds.scoreDocs) {Document doc = searcher.doc(sd.doc);System.out.println("DocID:" + sd.doc);System.out.println("id:" + doc.get("id"));System.out.println("title:" + doc.get("title"));System.out.println("文档评分:" + sd.score);}dir.close();reader.close();}
}
结果:
加载扩展词典:ext.dic
加载扩展停止词典:stopword.dic
加载扩展停止词典:ext_stopword.dic
Query:+title:农村 +title:村学 +title:学生
DocID:1
id:2
title:北大迎4380名新生 农村学生700多人近年最多
文档评分:2.5182846
Lucene查询操作相关推荐
- 【lucene】lucene查询操作
文章目录 1.概述 2. 精准查询TermRangeQuery 3. 数字搜索NumericRangeQuery 4. 前缀搜索-PrefixQuery 4. 通配符搜索-WildcardQuery ...
- Lucene查询语法详解
Lucene查询 Lucene查询语法以可读的方式书写,然后使用JavaCC进行词法转换,转换成机器可识别的查询. 下面着重介绍下Lucene支持的查询: Terms词语查询 词语搜索,支持 单词 和 ...
- lucene 查询示例_高级Lucene查询示例
lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...
- lucene 查询示例_Lucene查询(搜索)语法示例
lucene 查询示例 本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lu ...
- 高级Lucene查询示例
本文是我们名为" Apache Lucene基础知识 "的学院课程的一部分. 在本课程中,您将了解Lucene. 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式 ...
- lucene查询原理
lucene查询原理 1. lucene 数据模型 2. lucene 查询过程 3. SkipList 哨兵数组 skipDoc docDeltaBuffer Lucene中使用读取跳表SkipLi ...
- Lucene查询的底层实现IndexSearch(上)
系列文章目录 (一)问答系统的文段检索 (二)lucene全文检索底层原理理解 (三)Lucene查询的底层实现IndexSearch(上) (四)Lucene查询的底层实现IndexSearch(下 ...
- resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...
- Mybatis入门:4(多表查询操作)
多表查询操作 Mybatis的多表操作 表之间的关系有几种:一对多.一对一.多对一.多对多 举例: 用户和订单就是一对多--一个用户可以下多个订单 订单和用户就是多对一--多个订单属于同一个用户 人和 ...
最新文章
- 实时音视频的超级风口,开发者的机会在哪里?
- ACM-ICPC 2018 南京赛区网络预赛
- Android开发之Service与IntentService的区别与使用场景(源代码剖析)
- python入门基础知识教程-Python基础知识入门,这三个原则是你要知道的,还有教程...
- 浅谈JavaScript错误
- php随机数字不重复,php生成N个不重复的随机数
- 笔记-项目采购管理-规划采购管理
- C# XML 添加,修改,删除Xml节点
- c语言双引号和单引号的区别_Python中的单引号和双引号有什么区别?
- oracle之高级子查询1
- myeclipse使用git图文教程
- javascript 西瓜一期 13 十六进制的数数方式与进位
- ACM的分类训练题集
- python manage.py startapp app 时候报错No module named _sqlite3
- 如何利用Camtasia给视频加上配音?
- Thread类中的常用方法
- SqlServer的填充因子
- 防治脖子痛的简易保健操
- 微信小程序云函数中有以下未安装的依赖,如果未安装即全量上传
- 编译安装pypy,让py飞起来