为价格启用Solr统计

2020-09-24 15:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我想要索引价格字段的最小...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想要索引价格字段的最小值和最大值。

我知道使用Solr Stats组件可以做到这一点,因此我需要将这两个参数添加到Solr查询中:

  stats = true&stats.field = priceValue_chf_double

  

除了通过使用自定义方法扩展SearchSolrQueryPopulator将此原始参数添加到SolrQuery之外,是否有更好的方法来启用Solr Stats Component? 也许是通过春季?

 公共类OccSearchSolrQueryPopulator 
          扩展SearchSolrQueryPopulator  {
     
      私有静态最终字符串SOLR_STATS =" stats";
      私有静态最终字符串SOLR_STATS_VALUE =" true";
      私有静态最终字符串SOLR_STATS_FIELD =" stats.field";
      受保护的静态最终字符串SOLR_STAT_INFO_PRICE_CHF =" priceValue_chf_double";
     
      @Override
      公共无效人口(
              最终的SearchQueryPageableData 源,
              最终的SolrSearchRequest 目标){
         
          super.populate(来源,目标);
          addStats(target);
      }
     
    /**
       *添加Solr统计
       *
       * @参数目标
       */
      受保护的无效addStats(最终SolrSearchRequest 目标){
         //添加最低/最高价格的统计信息
          target.getSearchQuery()。addRawParam(SOLR_STATS,SOLR_STATS_VALUE);
          target.getSearchQuery()。addRawParam(SOLR_STATS_FIELD,SOLR_STAT_INFO_PRICE_CHF);
      }
  }

  

还有没有更好的方法来从SolrSearchResult检索统计信息? 目前,我使用此方法:

 /**
   *在价格方面设置统计最低和最高价格
   *
   * @参数facetData
   * @paolrSearchResult
   */
  私人无效setMinMaxPrice(final FacetData  facetData,最终SearchResult solrSearchResult){
      最终QueryResponse queryResponse = solrSearchResult.getSolrObject();
     
      if(queryResponse!= null && queryResponse.getFieldStatsInfo()!= null){
          facetData.setMaxPrice((Double)queryResponse.getFieldStatsInfo()。get(OccSearchSolrQueryPopulator.SOLR_STAT_INFO_PRICE_CHF).getMax());
          facetData.setMinPrice((Double)queryResponse.getFieldStatsInfo()。get(OccSearchSolrQueryPopulator.SOLR_STAT_INFO_PRICE_CHF).getMin());
      }
  }


  

Solr Stats组件指南: https: //cwiki.apache.org/confluence/display/solr/The+Stats+Component