博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lucene6.0学习笔记——常用查询(一)
阅读量:6294 次
发布时间:2019-06-22

本文共 1034 字,大约阅读时间需要 3 分钟。

hot3.png

1.文本分词查询

@Testpublic void textQuery(){	String text="我们是中国人";	String[] fields={"name","content"};	QueryParser parser= new MultiFieldQueryParser(fields, LuceneDemo.analyzer);	try {		//建立索引		LuceneDemo.createIndex();		Query query=parser.parse(text);		List
documents=LuceneDemo.search(query); for(Document document:documents){ System.out.println("文件名:"+document.get("name")); System.out.println("文件大小:"+document.get("size")); System.out.println("摘要内容:"+document.get("content")); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }}

打印结果为:

可以看到查询规则,会将文本进行分词,再根据指定查询字段去进行匹配,找出所需要的结果。

2.term查询TermQuery

Term term=new Term("content","我们是中国人");Query query=new TermQuery(term);

打印结果为:

可以看出term不会对文本进行分词,而是直接当做关键字去进行查询,这里有点类似与SQL的模糊(%text%)查询。

3.多个term查询TermsQuery

Term term=new Term("name","wang");Term term1=new Term("content","none");Query query=new TermsQuery(term,term1);

打印结果为:

和Term查询基本一致,只是多了个条件。

注意:这两个条件是或者(or)的关系,也就是说只要满足其中一个条件即可。

转载于:https://my.oschina.net/visionit/blog/715585

你可能感兴趣的文章
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>