zoukankan      html  css  js  c++  java
  • 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"));
            }
            
        }
    
    }
    

     

  • 相关阅读:
    pyspark使用及原理
    谷歌地图聚合点使用(GoogleMaps MarkerCluster)
    struts2升级到2.5的配置
    二进制反码补码
    进制转换
    JAVA基础第一章
    TypeError: unhashable type: 'list' 如何解决?
    剪辑模板
    Mysql三天入门(三) 数据库设计的三范式
    Mysql三天入门(三) DBA命令
  • 原文地址:https://www.cnblogs.com/sjzxs/p/9536428.html
Copyright © 2011-2022 走看看