点击此处---> 群内免费提供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
嗨,帕特里克,
您能调查这个问题并提供解决方案吗?
https://answers.sap.com/questions/12767326/view.html
谢谢...
一周热门 更多>