23Solr复杂查询 - 使用solrj查询

简介: 23Solr复杂查询 - 使用solrj查询

其中包含查询、过滤、分页、排序、高亮显示等处理。

//复杂查询索引
  @Test
  public void queryIndex2() throws Exception {
    //创建连接
    SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
    //创建一个query对象
    SolrQuery query = new SolrQuery();
    //设置查询条件
    query.setQuery("钻石");
    //过滤条件
    query.setFilterQueries("product_catalog_name:幽默杂货");
    //排序条件
    query.setSort("product_price", ORDER.asc);
    //分页处理
    query.setStart(0);
    query.setRows(10);
    //结果中域的列表
    query.setFields("id","product_name","product_price","product_catalog_name","product_picture");
    //设置默认搜索域
    query.set("df", "product_keywords");
    //高亮显示
    query.setHighlight(true);
    //高亮显示的域
    query.addHighlightField("product_name");
    //高亮显示的前缀
    query.setHighlightSimplePre("<em>");
    //高亮显示的后缀
    query.setHighlightSimplePost("</em>");
    //执行查询
    QueryResponse queryResponse = solrServer.query(query);
    //取查询结果
    SolrDocumentList solrDocumentList = queryResponse.getResults();
    //共查询到商品数量
    System.out.println("共查询到商品数量:" + solrDocumentList.getNumFound());
    //遍历查询的结果
    for (SolrDocument solrDocument : solrDocumentList) {
      System.out.println(solrDocument.get("id"));
      //取高亮显示
      String productName = "";
      Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
      List<String> list = highlighting.get(solrDocument.get("id")).get("product_name");
      //判断是否有高亮内容
      if (null != list) {
        productName = list.get(0);
      } else {
        productName = (String) solrDocument.get("product_name");
      }
      System.out.println(productName);
      System.out.println(solrDocument.get("product_price"));
      System.out.println(solrDocument.get("product_catalog_name"));
      System.out.println(solrDocument.get("product_picture"));
    }
  }


目录
相关文章
|
XML JSON PHP
22Solr复杂查询 - 使用后台查询
22Solr复杂查询 - 使用后台查询
39 0
|
Java API Maven
使用solrJ操作solr常用方法
使用solrJ操作solr常用方法
107 0
|
Apache 数据格式 算法
|
存储 SQL 编解码
Solr-lucene 使用案例大全
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。 本文sole lucene的使用案例汇总。
225 0
|
XML 缓存 自然语言处理
Solr 的作用,为什么要用solr服务,
Solr 的作用,为什么要用solr服务,
285 0
|
Java 索引 存储
通过solrj对solr进行开发
应用场景 当安装部署完solr之后,我们可以通过solrj来连接solr,进行新建,删除索引等等操作,达到全文检索的效果。
1156 0