zoukankan      html  css  js  c++  java
  • 记一次生产Slor分组的bug

    Facet种类

    Solr的Facet有多种形式,它们的参数不尽相同。

    Filed-Value Facet

    可以用于Text或者String类型的字段。

    参数说明
    facet.field 需要做facet查询的字段,必须指定,否则其他参数无效
    facet.sort 排序规则,可以是count(默认值,由大到小)或index(字典顺序)
    facet.limit 控制返回的数量,默认100
    facet.missing 控制是否考虑没有facet字段,默认false

    由于当时用到分组的时候,也是在网上找的博客,没有仔细的研究,结果当分组条数过多的时候就出现问题了,发现返回的结果少了,但是总数没有变。

    而且返回的条数总是100条,因为之前要对分组后的数据还要截取去重,所以也没有发现这个问题。

    解决:条数改的多一些

    SolrQuery query = new SolrQuery();// 建立一个新的查询
            query.setQuery(keywords);
            query.setFacet(true);// 设置facet=on
            query.addFacetField(new String[] {"v1_groupId"});// 设置需要facet的字段
            query.setFacetLimit(10000);// 限制facet返回的数量

    如果是group分组的话

     SolrQuery query = new SolrQuery();// 建立一个新的查询
            query.setQuery(keywords);
            query.setParam(GroupParams.GROUP,true);//是否分组
            query.setParam(GroupParams.GROUP_FIELD,"v1_teacherId");//分组的域
            query.setParam(GroupParams.GROUP_LIMIT,"100");//每组显示的个数,默认为1
            query.setStart(1); //起始索引值
            query.setRows(10000);//显示几条数据
  • 相关阅读:
    2016工作总结与反思
    JSP 标准标签库(JSTL)
    JQuery遍历CheckBox踩坑记
    JAVA中按照""截取字符串
    file上传图片功能
    List转化为Map
    Map转化为List
    对JAVA的LIST进行排序
    根据制定ID查询信息
    制定查询条数
  • 原文地址:https://www.cnblogs.com/dalianpai/p/12142426.html
Copyright © 2011-2022 走看看