开发者社区> 问答> 正文

JavaSDK的搜索如何操作?(8)


添加统计信息(aggregate)相关参数(2)



参数描述

参数名称类型描述
groupKeyString指定需要统计的字段名称。
aggFunString指定统计的方法。当前支持:count、max、min、sum等。


返回结果

  • boolean 返回添加成功或失败。


接口定义


  1. boolean addAggregate(String groupKey, String aggFun)



获取用户设定的统计相关信息(aggregate)



返回结果

  • 返回用户设定的统计信息。


接口定义


  1. List<Map<String, Object>> getAggregate()



返回字符串类型的统计信息(aggregate)



返回结果

  • 返回字符串类型的统计信息。


接口定义


  1. String getAggregateString()



添加聚合打散条件(distinct)(1)



接口描述


例如:检索关键词“手机”共获得10个结果,分别为:doc1,doc2,doc3,doc4,doc5,doc6,
doc7,doc8,doc9,doc10。其中前三个属于用户A,doc4-doc6属于用户B,剩余四个属于
用户C。如果前端每页仅展示5个商品,则用户C将没有展示的机会。但是如果按照user_id进行抽
取,每轮抽取1个,抽取2次,并保留抽取剩余的结果,则可以获得以下文档排列顺序:doc1、
doc4、doc7、doc2、doc5、doc8、doc3、doc6、doc9、doc10。可以看出,通过distinct
排序,各个用户的 商品都得到了展示机会,结果排序更趋于合理。
详细说明请见: API distinct子句

参数描述

参数名称类型描述
keyString为用户用于做distinct抽取的字段,该字段要求为可过滤字段。
distCountint为一次抽取的document数量,默认值为1。
distTimesint为抽取的次数,默认值为1。
reservedString为是否保留抽取之后剩余的结果,true为保留,false则丢弃,丢弃时totalHits的个数会减去被distinct而丢弃的个数,但这个结果不一定准确,默认为true。
distFilterString为过滤条件,被过滤的doc不参与distinct,只在后面的 排序中,这些被过滤的doc将和被distinct出来的第一组doc一起参与排序。默认是全部参与distinct。
updateTotalHitString当reserved为false时,设置update_total_hit为true,则最终total_hit会减去被distinct丢弃的的数目(不一定准确),为false则不减; 默认为false。
gradedouble指定档位划分阈值。


返回结果

  • 返回是否添加成功。


接口定义


  1. boolean addDistinct(String key, int distCount, int distTimes,String reserved, String distFilter, String updateTotalHit,double grade)

展开
收起
轩墨 2017-10-25 12:37:33 1713 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MongoDB5.0搜索附近的人车物 立即下载
《开放搜索查询分析服务架构分享》 立即下载
基于 Elasticsearch 电商搜索 立即下载