• Solr复杂条件查询


    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"));
            }
            
        }
    
    }
    

     

  • 相关阅读:
    034.Python的__str__,__repr__,__bool__ ,__add__和__len__魔术方法
    033.Python的__del__析构方法he__call__方法
    032.Python魔术方法__new__和单态模式
    python3使用tabulate漂亮的打印数据
    在Linux真正有效的调节鼠标速度!
    RouterOS上实现内网DNS劫持
    使用grease monkey强力清除搜索结果页的广告
    centos 6.5 apache下配置python cgi 并解决中文乱码
    python的缩进语法不是一种好的设计
    让npm默认使用taobao镜像源
  • 原文地址:https://www.cnblogs.com/sjzxs/p/9536428.html
Copyright © 2020-2023  润新知