【Apache Solr系列之四】Solr客户端SolrJ API使用文档-查询实例
2013-11-27 16:31
585 查看
在上一篇文章中已经学了SolrJ的增删改。本篇来学习下查询的一些实例
(还未了解SolrJ 增删改的可以查看以上博文:/article/2111116.html)
1、查询排序
2、模糊查询
3、分页查询
4、多条件 ||(或)的情况
5、多条件& (且)的情况:
对于普通的查询,以上这些查询已经足够了!但是对于复杂的查询当然光靠这些是远远不够的。
后面会有博文介绍更加复杂的查询。
(还未了解SolrJ 增删改的可以查看以上博文:/article/2111116.html)
1、查询排序
public static void solrOrder() throws SolrServerException { solrCore = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.addSortField("id", SolrQuery.ORDER.asc); QueryResponse rsp = solrCore.query(query); List<App> beans = rsp.getBeans(App.class); for (int i = 0; i < beans.size(); i++) { System.out.println(beans.get(i).getName()); } }使用addSortField可将查询出来的结果按照你指定的字段进行排序
2、模糊查询
public static void likeQuery() throws SolrServerException { solrCore = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.setQuery("name:*天天*"); QueryResponse rsp = solrCore.query(query); List<App> beans = rsp.getBeans(App.class); for (int i = 0; i < beans.size(); i++) { System.out.println(beans.get(i).getName()); } }模糊查询其实很简单,因为solr本身就支持正则查询,所以通过setQuery指定你要查询的字段,以及要做模糊查询的值就搞定了!
3、分页查询
public static void pageQuery() throws SolrServerException { solrCore = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.setQuery("name:*天天*"); query.setStart(0); query.setRows(10); QueryResponse rsp = solrCore.query(query); List<App> beans = rsp.getBeans(App.class); for (int i = 0; i < beans.size(); i++) { System.out.println(beans.get(i).getName()); } }这里用到了setStart以及setRows方法进行分页
4、多条件 ||(或)的情况
public static void multipleQuery1() throws SolrServerException { solrCore = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.setQuery("artist:*Tencent* name:*天天*");// 多条件使用空格分隔 query.setFields("name", "id_in_appstore", "artist"); QueryResponse rsp = solrCore.query(query); List<App> beans = rsp.getBeans(App.class); for (int i = 0; i < beans.size(); i++) { System.out.println(beans.get(i).getName()); System.out.println(beans.get(i).getArtist()); System.out.println(beans.get(i).getId_in_appstore()); } }在setQuery中设置多个查询条件,多个查询条件中间用空格隔开就ok
5、多条件& (且)的情况:
public static void multipleQuery2() throws SolrServerException { solrCore = new HttpSolrServer(url); SolrQuery query = new SolrQuery(); query.setQuery("name:*天天*");// 多条件使用空格分隔 query.setFilterQueries("artist:*Tencent*"); query.setFields("name", "id_in_appstore", "artist"); QueryResponse rsp = solrCore.query(query); List<App> beans = rsp.getBeans(App.class); for (int i = 0; i < beans.size(); i++) { System.out.println(beans.get(i).getName()); System.out.println(beans.get(i).getArtist()); System.out.println(beans.get(i).getId_in_appstore()); } }name包含"天天"且artist包含“Tencent”
对于普通的查询,以上这些查询已经足够了!但是对于复杂的查询当然光靠这些是远远不够的。
后面会有博文介绍更加复杂的查询。
相关文章推荐
- 【Apache Solr系列之三】Solr客户端SolrJ API使用文档-增删改
- 【Apache Solr系列之五】使用Solr客户端SolrJ实现多层面统计
- 数据处理系列(二) 使用Solr查询Mysql中的数据
- MySQL系列—DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
- Solr学习笔记五--solrj的使用(查询文档)
- Android官方开发文档Training系列课程中文版:后台加载数据之使用CursorLoader进行查询
- Solr入门之官方文档6.0阅读笔记系列(三)
- [MySQL优化案例]系列 -- 无法使用查询缓存
- 使用spring-data-solr做solr客户端
- 【Apache HBase系列】HBase ORM框架GORA使用文档
- ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
- SOLR使用手册之查询语法
- 在Domino中使用Java代理创建文档实例参考
- ASP.NET MVC3 实例(三) 使用 Controller 进行数据的的查询
- MySQL5.7性能优化系列(二)——SQL语句优化(2)——使用 Semi-Join半连接变换优化子查询,派生表和视图
- HBase java API 使用实例(二)——查询、分页
- 极光推送使用实例(二) Android客户端
- PHP中使用TCPDF生成PDF文档实例
- ElasticSearch 使用 Inner_hits 查询Parent-Child(父子)文档 - 1.50新特性
- Zookeeper系列(十一)Zookeeper开源客户端之Curator基本使用