栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何根据ElasticSearch中的项目数对搜索结果进行排序?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何根据ElasticSearch中的项目数对搜索结果进行排序?

您可以为包含标签数量的其他字段建立索引,然后在其上轻松地对结果进行排序。否则,如果您愿意在查询时付出一点性能成本,那么有个不错的解决方案不需要重新索引数据:您可以根据如下脚本进行排序:

{    "query" : {        "match_all" : {}    },    "sort" : {        "_script" : {  "script" : "doc['tags'].values.length", "type" : "number", "order" : "asc"        }    }}

从基于脚本的排序部分可以看到:

请注意,对于基于单个自定义脚本的排序,建议使用custom_score查询,因​​为基于分数的排序更快。

这意味着最好使用自定义分数查询来影响您的分数,然后按分数排序,如下所示:

{    "query" : {        "custom_score" : { "query" : {     "match_all" : {} }, "script" : "_score * doc['tags'].values.length"        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号