Lucene2.4.0一般查询结果过滤与排行
为什么80%的码农都做不了架构师?>>>
1,使用 Filter 对搜索结果进行过滤,可以获得更小范围内更精确的结果。 RangeFilter filter = new RangeFilter("forum.id","1","1",true,true);//设置过滤字段 相当于SQL的 “forumId = 1”
2,在搜索时有时你想要一个排好序的结果集,就像SQL语句的“order by”,lucene能做到:通过Sort。 Sort sort = new Sort(“time”); //相当于SQL的“order by time” Sort sort = new Sort(“time”, true); // 相当于SQL的“order by time desc”
public static void searchWildcardQuery(File indexDir, String q) throws Exception { Directory fsDir = FSDirectory.getDirectory(indexDir); IndexSearcher is = new IndexSearcher(fsDir);// ① 打开索引 QueryParserTest parser = new QueryParserTest("title", new StandardAnalyzer());Query wildQuery = parser.createWildQuery(new Term("title",q)); // ② 分析查询 long start = new Date().getTime(); Sort sort = new Sort("id",true);//降序排列RangeFilter filter = new RangeFilter("forum.id","1","1",true,true);//设置过滤字段BooleanQuery.setMaxClauseCount(is.maxDoc());ScoreDoc[] docs = is.search(wildQuery,filter, is.maxDoc(),sort).scoreDocs; // ③ 搜索索引 long end = new Date().getTime(); System.err.println("Found " + docs.length + " document(s) (in " + (end - start) + "milliseconds) that matched query: " + q); int count = 1;for (int i = 0; i < docs.length; i++) { Document doc = is.doc(docs[i].doc); ; // ④ 得到匹配的文档 if(Integer.parseInt(doc.get("forum.id"))==1 && Integer.parseInt(doc.get("status"))==1){System.out.println("file: "+count+"_"+ doc.get("id")+"_" + doc.get("title")); count++;}} }
转载于:https://my.oschina.net/888/blog/1176
Lucene2.4.0一般查询结果过滤与排行相关推荐
- Elasticsearch-05Elasticsearch之查询与过滤
文章目录 官方API文档 准备数据 请求体查询 空查询 from 及 size 参数进行分页 结构化查询 查询子句 合并多子句 查询与过滤 查询语句与过滤语句的区别 Query DSL match_a ...
- elasticsearch in查询_Python Elasticsearch DSL 查询、过滤、聚合操作实例
技术博客: https://github.com/yongxinz/tech-blog 同时,也欢迎关注我的微信公众号 AlwaysBeta,更多精彩内容等你来. Elasticsearch 基本概念 ...
- mysql 查询语句 过滤_MySQL全面瓦解7:查询的过滤条件
概述 在实际的业务场景应用中,我们经常要根据业务条件获取并筛选出我们的目标数据.这个过程我们称之为数据查询的过滤.而过滤过程使用的各种条件(比如日期时间.用户.状态)是我们获取精准数据的必要步骤, 这 ...
- oracle 查的数据去重复数据,Oracle查询和过滤重复数据
对数据库某些意外情况,引起的重复数据,如何处理呢? ----------------查重复: select * from satisfaction_survey s where s.as_side = ...
- 微服务项目之电商--19.ElasticSearch基本、高级查询和 过滤、结果过滤、 排序和聚合aggregations
接上一篇 目录 3.查询 3.1.基本查询: 3.1.1 查询所有(match_all) 3.1.2 匹配查询(match) 3.1.3 多字段查询(multi_match) 3.1.4 词条匹配(t ...
- 【MySQL】5.0 数据查询
数据查询 基本查询 条件查询 连接查询 内连接查询(INNER JOIN) 外连接查询(OUTER JOIN) 复合连接查询 高级应用 Limit Union GROPE BY ORDER BY DI ...
- mysql子查询设置_什么是mysql子查询?如何利用子查询进行过滤?
子查询 MySQL 4.1引入了对子查询的支持,所以要想使用本章描述的SQL,必须使用MySQL 4.1或更高级的版本. SELECT语句 是SQL的查询.迄今为止我们所看到的所有 SELECT 语句 ...
- php怎么解决慢查询,【后端开辟】php-fpm7.0 慢查询设置及申明
环境申明 root@ubuntu:/home/tb# cat /etc/issue Ubuntu 16.04.2 LTS \n \l root@ubuntu:/home/tb# php -v PHP ...
- 使用Hibernate的JPA 2.0标准查询
JPA 2.0中引入了条件查询 . 借助条件查询,您可以以类型安全的方式编写查询. 在进行标准查询之前,开发人员必须通过构建基于对象的查询定义来编写查询. 构建查询时,可能会出现语法错误的情况. 条件 ...
- yii mysql 查询 类型转换_yii2.0数据库查询修改等方法
yii2.0学习有一段时间了,给大家分享一下一些简单的查询等如何操作. 查询:(这里最前面的Test是引用的模型名) Test::find()->all();此方法返回所有数据: Test::f ...
最新文章
- H5 唤起 APP的解决方案
- 常用邮件客户端软件设置
- 数论相关:同余方程与同余方程组的解法
- Linux 命令 - jobs: 显示后台作业的状态信息
- xp文件夹怎么设置密码?压缩文件及Office文件加密方法
- 2021-4-1 多校省选模拟赛
- Flink常见流处理API
- 全国携号转网下月底实现 三大运营商狂推多种优惠套餐
- 圆柱属于能滚动的物体吗_小班科学领域详细教案:会滚动的物体
- QT错误:collect2:ld returned 1 exit status
- css制作序列帧动画
- 汇编:Debug的常用命令
- 做空机构为什么合法,股票做空机构gmt如何达成盈利目标
- PyQt5 基本语法(一):基类控件
- 每天学命令deleteRow
- 智慧灯杆(路灯)控制系统平台架构的主要设备有哪些?
- 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII
- 无图片CSS圆角的五个实例
- codeforces1000a csdn-博客
- 东方财富股吧标题爬取分析
热门文章
- function传值传字符串,然后Ajax url传值的时候传这个装字符串的变量
- Python版:实现双十一秒杀,防止超限
- Spring Bean生命周期-prepareRefresh(二)
- 第10章 接口、继承与多态----对象类型的转换
- angular学习疑问总结
- MySQL对分隔符的处理(一)
- 服务器接收到其他服务器传送的数据_其他-查找网内的其他DHCP服务器-从零开始学RouterOS系列21...
- python向数据库中添加参数_python往mysql数据库中写入数据和更新插入数据
- 古风素材无水印免费下载
- java 引用机制_Java编程开发之浅析Java引用机制