solr复杂查询条件查询(排序、过滤、高亮)

简单案例:

package cn.kingdee;

import java.util.List;
import java.util.Map; import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrQuery.ORDER;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.junit.Test; public class TestMyMannager {
@Test
public void queryIndex() throws Exception {
//创建连接
SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
//创建一个query对象
SolrQuery solrQuery = new SolrQuery();
//设置默认的查询范围
solrQuery.set("df", "product_name");
//设置查询条件
solrQuery.setQuery("台灯");
//设置过滤条件
solrQuery.setFilterQueries("product_catalog_name:幽默杂货");
//设置排序条件
solrQuery.setSort("product_price",ORDER.desc);
//分页处理
//开始索引为0
solrQuery.setStart(0);
//每页显示多少行
solrQuery.setRows(8);
//设置高亮(开启)
solrQuery.setHighlight(true);
//设置高亮域
solrQuery.addHighlightField("product_name");
//设置高亮前缀
solrQuery.setHighlightSimplePre("<em>");
//设置高亮后缀
solrQuery.setHighlightSimplePost("</em>");
//执行语句
QueryResponse query = solrServer.query(solrQuery);
//取到查询结果集
SolrDocumentList results = query.getResults();
//共查询到商品数量
long numFound = results.getNumFound();
//遍历结果
String productname="";
for (SolrDocument doc : results) {
Map<String, Map<String, List<String>>> highlighting = query.getHighlighting();
List<String> list = highlighting.get(doc.get("id")).get("product_name");
if (list!=null&&list.size()>0) {
productname = list.get(0);
}else{
productname=(String) doc.get("product_name");
}
System.out.println(doc.get("id")); System.out.println(doc.get("product_name"));
} } }

Solr复杂条件查询的更多相关文章

  1. solr多条件查询(三)

    1.昨天记了一下三条件的“并且” “并且”(  &&   &&  )的情况,今天再来记一下 “并且”  “或者” 的情况. 这里的或者情况,一定要搞清楚无论有多少情况, ...

  2. solr多条件查询(二)

    由于现在的 需求很变态需要N多条件的叠加,本人就用了一天时间摸索加求助,终于参透出这个q和fq的强大之处. 需求如下图,有三种关系:并且.或.不含 1.如果是或者也就是改变的q的查询条件: 2.如果是 ...

  3. solr多条件查询(一)

    每个项目的数据结构可能不同,查询的格式有可能不同,本项目所有的字段为动态的,所以整理了一下, 1.查询所有字段中包含”测试“但是所有的TM不包含”江苏大学“ q:X_1457955996315KEY: ...

  4. solr多条件查询(四)

    上面讲到比较烦琐,如果这个不好理解,可以直接用sorl的多条件过滤addFilterQuery();方法

  5. 基于Solr的HBase多条件查询测试

    背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级 的快 速检索,对于多字段的组合查询却无能为力.针对HBa ...

  6. solr的多条件组合查询和solr的范围查询【转】

    solr的多条件组合查询和solr的范围查询 版权声明:本文为博主原创文章,供大家参考,但不要抄袭哦! 存在问题:为了减轻数据库的访问压力,往往我们将必要的数据存储到solr中,并给部分字段建立索引, ...

  7. Solr实战:使用Hue+Solr实现标签查询

    公司最近在研究多条件组合查询方案,Google的一位技术专家Sam和我们讨论了几个备选方案. Sam的信: 我做了进一步研究,目前有这么几种做法: 1) 最直接粗暴,只做一个主index,比如按行业+ ...

  8. Solr与MySQL查询性能对比

    本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608     Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...

  9. Solr 08 - 在Solr Web管理页面中查询索引数据 (Solr中各类查询参数的使用方法)

    目录 1 Solr管理页面的查询入口 2 Solr查询输入框简介 3 Solr管理页面的查询方案 1 Solr管理页面的查询入口 选中需要查询的SolrCore, 然后在菜单栏选择[Query]: 2 ...

随机推荐

  1. 【ORACLE】解锁scott帐号

    sqlplus / as sysdba;SQL> alter user scott account unlock;SQL> conn scott/grace

  2. C++学习 —— 灵活的继承特性

    0.继承与算法开发 在之前的笔记中,我展示了来自继承的威力.继承这种机制能够大幅度减小编码量,子类可以继承父类所有的变量,方法.利用这种机制,我们可以在其他人工作的基础上,完成有自己特色的部分.比如我 ...

  3. window 控制台解决中文乱码

    console.log 输出中文乱码,怎么解决 是由于DOS窗口显示的编码同logcat日志中不同导致的乱码问题.DOS窗口默认的编码是GBK,而LogCat打印的是UTF-8的编码,所以要设置DOS ...

  4. js 判断js,css是否引入,确保不重复引入

      基本原理:function loadjscssfile(filename, filetype){if (filetype=="js"){ //if filename is a ...

  5. str、tuple、dict之间的相互转换

    字符串.字典.元祖之间的相互转换: 1.字符串与列表之间的转换 str1 = 'ADMINphuang' '''str--->list''' list1=str1.split('p') prin ...

  6. 注意兼容浮点运算误差 0.7 + 0.1 ==0.8 为false

    所以比较 汇总或者计算的时候注意确定精度0.7 + 0.1 ==0.8 换成 Math.abs(0.7 + 0.1 ==0.8)<0.0001参考下

  7. 概率DP求解例题

    1,逆推状态:山东省赛2013年I题 Problem I: The number of steps Description Mary stands in a strange maze, the maz ...

  8. yii js

    页面url拼接以及页面跳转 var baseUrl = '<?php echo Yii::$app->request->baseUrl ?>';var url = baseUr ...

  9. [daily][mathematica][fcitx] mathematica 无法输入中文的问题

    mathematica无法输入中文, 我的输入法使用 fcitx 于是我给fcitx的作者提了issue https://github.com/fcitx/fcitx/issues/372 数日之后, ...

  10. 分析servlet injection

    @WebServlet("/cdiservlet") ||url映射 public class NewServlet extends HttpServlet { private M ...