【Apache Solr系列之四】Solr客户端SolrJ API使用文档-查询实例
来源:互联网 发布:文明6 for mac 编辑:程序博客网 时间:2024/05/22 15:18
在上一篇文章中已经学了SolrJ的增删改。本篇来学习下查询的一些实例
(还未了解SolrJ 增删改的可以查看以上博文:http://blog.csdn.net/weijonathan/article/details/16963437)
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 API使用文档-增删改
- 【Apache Solr系列之五】使用Solr客户端SolrJ实现多层面统计
- Solr之客户端SolrJ
- solr系列--solrj使用
- Solr学习笔记四--solrj的使用(更新文档)
- Solr学习笔记五--solrj的使用(查询文档)
- Solr客户端 SolrJ单机 添加查询操作
- [搜索] Solr (四) 利用SolrJ操作solr API
- Solr JAVA客户端SolrJ的使用
- solr学习笔记 -- day03 使用solrJ客户端
- Solr文档学习--Solrj的使用
- solr cloud系列-solrj的使用
- Solr(四)——Java使用solrj管理solr集群
- 使用solrj操作solr
- Solr solrj的使用
- 使用solrJ操作solr
- solr-solrj的使用
- UIPickerView 自定义
- Spring事务管理中@Transactional的propagation参数
- 纯虚函数与抽象类
- 【转载】FileUpload控件如何实现文件上传
- 虚函数机制
- 【Apache Solr系列之四】Solr客户端SolrJ API使用文档-查询实例
- 感动!刘若英和陈升的那些往事
- SSH Secure File Transfer 在linux下 中文乱码的解决办法
- 图的API及其两种实现(邻接矩阵,邻接表 )
- 错误:unqualified-id before numeric constant的原因
- tableviewcell重绘
- 在ubuntu下编译安装内核及其卸载
- 二叉链表实现二叉树
- 你们如何看bitcoin前景