下面文章中的方法和其它未说明的内容请前往此文档进行查看:Elasticsearch在PHP中的使用
在PHP中使用ELasticsearch查询时,怎样对查询结果进行排序,我分为了三种情况:
情况一:
当查询中sort条件为空时,Elasticsearch会自动根据检索条件匹配相似度,生成一个相似度的数值_score,而查询结果会按这个_score进行倒序排列。
$data = $ES->search_doc($search_where, '', 0, 10);
情况二:
当只传字段名时,Elasticsearch会按检索结果中此字段的值进行正序排列。
$data = $ES->search_doc($search_where, 'age', 0, 10);
情况三:
组合排序,一个或多个字段进行指定排序时,类似于数据库中order的作用。
用法(排序规则,desc倒序排列,asc正序排列):
['字段名'=>['order'=>'排序规则'],'字段名2'=>['order'=>'排序规则']]
注意:当未指定_score字段时,Elasticsearch不会计算检索条件的匹配相似程度,查询结果中的_score的值为null。
$data = $ES->search_doc($search_where, ['age'=>['order'=>'desc'],'_score'=>['order'=>'desc'],], 0, 10);
如果帮助到你,请赏杯奶茶喝~
- 本文链接: https://www.shx1024.top//index/article/details/article_id/64.shtml
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。