看,灰机...

spring data elasticsearch 返回数据封装进Page对象后按相关度排序问题,急急急!!!

Elasticsearch | 作者 liyang910801 | 发布于2018年03月20日 | 阅读数:5605

最近一周在用spring data elasticsearch做全文检索,但是出了一个很奇怪的问题。同样的语句,我在spring data Elasticsearch中查询的顺序和我在Elasticsearch-heaf插件中查询结果的顺序不一致。因为这个功能是关于商品检索的,需要根据相关度来排序显示,今天在网上查了一天也没有解决,希望懂的大哥帮小弟看看是啥问题,万分感谢!真的很急!下面附上代码:
---------------------------------------------------------------------Controller-------------------------------------------------------------------------------------
/*
      产品的查询及分页; @PageableDefault会自动的根据request的参数来组装该pageable对象();
      支持的request参数有page(默认为第0页)、size(默认为10)、sort(排序相关的信息);如page=1&&size=6&&sort=id,desc
   */
    @RequestMapping("/getContractProxySupplyList")
    public ServiceResponse<PageResult<ContractProxySupply>> getContractProxySupplyList( String goodsName, String goodsBrand,String goodsAttr,@PageableDefault Pageable pageable){
        return contractProxySupplyService.getContractProxySupplyList(goodsName,goodsBrand,goodsAttr,pageable);
    }
-------------------------------------------------------------------------DAO-----------------------------------------------------------------------------------------
 @Query("{\"query\":{\"bool\":{\"should\":[{\"match\":{\"itemList.goodsName\":{\"query\":\"牙膏\",\"boost\":1}}},{\"match\":{\"itemList.goodsBrand\":{\"query\":\"日化\",\"boost\":1}}},{\"match\":{\"itemList.goodsAttr\":{\"query\":\"美白效果好\",\"boost\":1}}}]}}}")
    List<ContractProxySupply> getContractProxySupplyList1(String goodsName,String goodsBrand,String goodsAttr, Pageable pageable);

service就是中转了一下,直接去调DAO了,就不上代码了。
QQ图片20180319173200.png QQ图片20180319173251.png
已邀请:

elastic_boy - 程序猿

赞同来自:

Hi,我也遇到了跟您一样的问题,请问您后来解决了嘛?

rochy - rochy_he

赞同来自:

这个排序需要你在 search 的部分设置,设置 sort=_score

medcl - 今晚打老虎。

赞同来自:

把这两次请求的完整返回贴出来看看,看看他们的得分分别是多少。

要回复问题请先登录注册