搜索引擎学习(七)解析查询
QueryParser【解析查询】
定义:QueryParser的解析查询是用Lucene语法进行查询,而上一篇说到的子类查则是使用java对象来进行查询条件的封装。
使用方式:使用QueryParser也可以创建Query,QueryParser提供了一个parse方法,此方法可以直接根据查询语法来查询。
代码展示:
/*** 条件解析对象查询* PS:lucene里面不支持对于字符串类型的范围查询,但是solr支持~** 各种条件语句解析:* fileName:java【精准查询】* fileSize:{1 TO 200}【范围查询】* +fileName:java fileName:lunece【组合查询】* PS:组合查询不同的条件空格隔开,其中域前面的“+”号代表“条件必须满足”,“-”号代表“条件必须不满足”,没有符号代表“条件可选”,* PS:也可以用 AND、OR、NOT来表示上面的符号(详细解析见总结的图)* @throws Exception*/@Testpublic void testQueryParser() throws Exception {//获取IndexSearcher(索引搜索)对象IndexSearcher indexSearcher = getIndexSearcher();//参数1:默认查询的域//参数2:采用的分析器QueryParser queryParser = new QueryParser("fileName", new StandardAnalyzer());//构建lucene查询条件的语法(第一个*是域,第二个*是域值)Query query = queryParser.parse("fileName:java");//*:* 域名:域值//打印查询的语法 System.out.println(query);//执行查询并打印结果 printResult(query, indexSearcher);}
MultiFieldQueryParser【指定多个默认搜索域的解析查询】
定义:在QueryParser的解析查询基础上扩展,支持多个默认域的查询。
代码展示:
/*** 多默认域解析查询* @throws Exception*/@Testpublic void testMultiFieldQueryParser() throws Exception {//获取IndexSearcher(索引搜索)对象IndexSearcher indexSearcher = getIndexSearcher();//参数1:设置多个默认查询的域//参数2:采用的分析器String[] fieldNames = {"fileName", "fileContent"};//指定默认查询的多个域MultiFieldQueryParser queryParser = new MultiFieldQueryParser(fieldNames, new StandardAnalyzer());//构建lucene查询条件的语法(第一个*是域,第二个*是域值)Query query = queryParser.parse("java");//*:* 域名:域值//打印查询的语法 System.out.println(query);//执行查询并打印结果 printResult(query, indexSearcher);}
转载于:https://www.cnblogs.com/riches/p/11479072.html
搜索引擎学习(七)解析查询相关推荐
- SQL语言之DQL语言学习(七)分组查询
语法 select分组函数,列(要求出现在group by的后面) from 表 where 筛选 group by 分组列表 order by 排序子句 案例一: 查询每个工种的最高工资 SELEC ...
- Gin 框架学习笔记(01)— 自定义结构体绑定表单、绑定URI、自定义log、自定义中间件、路由组、解析查询字符串、上传文件、使用HTTP方法
要实现一个 API 服务器,首先要考虑两个方面:API 风格和媒体类型.Go 语言中常用的 API 风格是 RPC 和 REST,常用的媒体类型是 JSON.XML 和 Protobuf.在 Go A ...
- (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
- 深度学习常见问题解析
深度学习常见问题解析 计算机视觉与自动驾驶 今天 一.为什么深层神经网络难以训练? 1.梯度消失.梯度消失是指通过隐藏层从后向前看,梯度会变得越来越小,说明前面层的学习会显著慢于后面层的学习,所以学习 ...
- Docker学习七:使用docker搭建Hadoop集群
本博客简单分享了如何在Docker上搭建Hadoop集群,我的电脑是Ubuntu20,听同学说wsl2有些命令不对,所以建议在虚拟机里按照Ubuntu或者直接安装双系统吧 Docker学习一:Dock ...
- 用深度学习来解析梦境中出现的物体
这篇文章主要的工作算是机器学习和神经科学的结合工作,需要读者在这两个方向有一定的基础. 另有科普版本,结构更加清晰,不过删减了很多内容.科普版本如下: 用深度学习来解析梦境中出现的物体 - 行为与认知 ...
- Python+大数据-Python学习(七)
Python+大数据-Python学习(七) 1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) - open默认打开的式r模式 文件路径:可以写相对路径,也可以写 ...
- 搜索引擎学习资源收集(转)
原文: http://blog.chinaunix.net/u/4764/showart_270897.html 搜索引擎学习资源收集 一.搜索引擎技术/动态资源 <一>.综合类 1.卢亮 ...
- 搜索引擎学习资源(作者:dongdonglang)
搜索引擎学习资源收集 作者:dongdonglang http://www.dunsh.org/forums/thread-2716-1-2.html 一.搜索引擎技术/动态资源 <一> ...
最新文章
- 生出树状的文件夹结构
- 频域采样与恢复matlab实验,连续信号的采样与重构实验报告
- 14大招打造你的平面设计创意
- (1110, “Column ‘arriveTime‘ specified twice“)
- BZOJ 2442: [Usaco2011 Open]修剪草坪 单调队列
- python前端代码_python前端HTML
- mysql 页级锁写法_MYSQL中表级锁、行级锁、页级锁介绍
- MaxScale Binlog Server实践
- hdu--1160--LIS+打印路径
- ftp等远程登录工具的星号密码查看方法
- 小工具 | 全站仪图根测量平差excel计算表格
- 126邮箱绑定QQ邮箱并微信提醒
- 高校青年教师应该怎么提高收入
- FontAwesome 图标 class=fa fa-home
- 如何做到两台电脑网线直连
- 【NOIP2016提高A组模拟9.24】天使的分裂
- ksm页面合并的并发处理
- 独立显卡linux安装教程,linux 安装meshlab并且指定使用独立显卡
- 【原创】无线路由器作为信号放大器设置方法
- 私服服务器刷怪文件叫什么,《奇迹》关于刷怪文件Monstersetbase.txt的简单说明
热门文章
- c语言键盘连续双击程序,编了个C语言的键盘程序有点问题,请指点下!
- 总结xml配置spring-aop声明式事务配置与hibernate报错:** isno active spring和hibernate整合,原因会话工厂去路(到spring不仅仅是bean)错误
- 新博客地址: https://sanzo.top
- HDU-6470 Count (构造矩阵+矩阵快速幂)
- string常用操作
- Mysql 优化的一些要点
- C++11thread之detach()与join()的函数对比
- linux下screen基本用法
- [BUUCTF-pwn]——jarvisoj_tell_me_something
- mysql配置不成功_mysql 5.7.17 zip安装配置教程 mysql启动失败的解决方法