spring data elasticsearch 返回数据封装进Page对象后按相关度排序问题,急急急!!!
Elasticsearch | 作者 liyang910801 | 发布于2018年03月20日 | 阅读数:5637
最近一周在用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了,就不上代码了。
---------------------------------------------------------------------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了,就不上代码了。
3 个回复
elastic_boy - 程序猿
赞同来自:
rochy - rochy_he
赞同来自:
medcl - 今晚打老虎。
赞同来自: