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

搜索引擎学习(七)解析查询相关推荐

  1. SQL语言之DQL语言学习(七)分组查询

    语法 select分组函数,列(要求出现在group by的后面) from 表 where 筛选 group by 分组列表 order by 排序子句 案例一: 查询每个工种的最高工资 SELEC ...

  2. Gin 框架学习笔记(01)— 自定义结构体绑定表单、绑定URI、自定义log、自定义中间件、路由组、解析查询字符串、上传文件、使用HTTP方法

    要实现一个 API 服务器,首先要考虑两个方面:API 风格和媒体类型.Go 语言中常用的 API 风格是 RPC 和 REST,常用的媒体类型是 JSON.XML 和 Protobuf.在 Go A ...

  3. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  4. 深度学习常见问题解析

    深度学习常见问题解析 计算机视觉与自动驾驶 今天 一.为什么深层神经网络难以训练? 1.梯度消失.梯度消失是指通过隐藏层从后向前看,梯度会变得越来越小,说明前面层的学习会显著慢于后面层的学习,所以学习 ...

  5. Docker学习七:使用docker搭建Hadoop集群

    本博客简单分享了如何在Docker上搭建Hadoop集群,我的电脑是Ubuntu20,听同学说wsl2有些命令不对,所以建议在虚拟机里按照Ubuntu或者直接安装双系统吧 Docker学习一:Dock ...

  6. 用深度学习来解析梦境中出现的物体

    这篇文章主要的工作算是机器学习和神经科学的结合工作,需要读者在这两个方向有一定的基础. 另有科普版本,结构更加清晰,不过删减了很多内容.科普版本如下: 用深度学习来解析梦境中出现的物体 - 行为与认知 ...

  7. Python+大数据-Python学习(七)

    Python+大数据-Python学习(七) 1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) ​ - open默认打开的式r模式 文件路径:可以写相对路径,也可以写 ...

  8. 搜索引擎学习资源收集(转)

    原文: http://blog.chinaunix.net/u/4764/showart_270897.html 搜索引擎学习资源收集 一.搜索引擎技术/动态资源 <一>.综合类 1.卢亮 ...

  9. 搜索引擎学习资源(作者:dongdonglang)

    搜索引擎学习资源收集 作者:dongdonglang   http://www.dunsh.org/forums/thread-2716-1-2.html 一.搜索引擎技术/动态资源 <一> ...

最新文章

  1. 生出树状的文件夹结构
  2. 频域采样与恢复matlab实验,连续信号的采样与重构实验报告
  3. 14大招打造你的平面设计创意
  4. (1110, “Column ‘arriveTime‘ specified twice“)
  5. BZOJ 2442: [Usaco2011 Open]修剪草坪 单调队列
  6. python前端代码_python前端HTML
  7. mysql 页级锁写法_MYSQL中表级锁、行级锁、页级锁介绍
  8. MaxScale Binlog Server实践
  9. hdu--1160--LIS+打印路径
  10. ftp等远程登录工具的星号密码查看方法
  11. 小工具 | 全站仪图根测量平差excel计算表格
  12. 126邮箱绑定QQ邮箱并微信提醒
  13. 高校青年教师应该怎么提高收入
  14. FontAwesome 图标 class=fa fa-home
  15. 如何做到两台电脑网线直连
  16. 【NOIP2016提高A组模拟9.24】天使的分裂
  17. ksm页面合并的并发处理
  18. 独立显卡linux安装教程,linux 安装meshlab并且指定使用独立显卡
  19. 【原创】无线路由器作为信号放大器设置方法
  20. 私服服务器刷怪文件叫什么,《奇迹》关于刷怪文件Monstersetbase.txt的简单说明

热门文章

  1. c语言键盘连续双击程序,编了个C语言的键盘程序有点问题,请指点下!
  2. 总结xml配置spring-aop声明式事务配置与hibernate报错:** isno active spring和hibernate整合,原因会话工厂去路(到spring不仅仅是bean)错误
  3. 新博客地址: https://sanzo.top
  4. HDU-6470 Count (构造矩阵+矩阵快速幂)
  5. string常用操作
  6. Mysql 优化的一些要点
  7. C++11thread之detach()与join()的函数对比
  8. linux下screen基本用法
  9. [BUUCTF-pwn]——jarvisoj_tell_me_something
  10. mysql配置不成功_mysql 5.7.17 zip安装配置教程 mysql启动失败的解决方法