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);//显示几条数据
  • 相关阅读:
    C#将DataTable按固定个数拆分成多个表
    IDataRowPersistable
    使用临时表的示例
    2011 11 28 sql语句学习
    2010 11 30 DrawCurve GDI绘制曲线
    如何查看viewstate的内容
    const 和 readonly 的区别
    access insert 语法错误
    asp.net下载文件的常用方法大全
    【转】JS超强判断电话号码
  • 原文地址:https://www.cnblogs.com/dalianpai/p/12142426.html
Copyright © 2011-2022 走看看