ES使用script进行复杂排序

es数据字段,关注_source内容,为自定义的es表字段内容

java 复制代码
{
    "clerk_id": 3150036230,
    "clerk_follow_status": 60,
    "create_time": 1729156110000,
    "channel": 1,
    "mid": 1538020071,
    "binlog_timestamp": null,
    "clue_tag": 0,
    "is_sync": 1,
    "vuid": 199603942960332807,
    "idempotence": "8101929dc442442b847a46fa09fa1c11",
    "sync_operation_time": 1733448887759,
    "follow_time": 1729230615000,
    "update_time": 1729230615000,
    "follow_count": 1,
    "id": 12428,
    "spu_id": 8797,
    "org_code": "MI0101",
    "wecom_friend": [
        3150036230
    ],
    "latest_purchase_time": 1656489614
}

要实现的排序逻辑是:如果wecom_friend字段包含指定id则优先排序

第一步 ,百度参考:Elasticsearch-script 脚本排序-CSDN博客

当前参考是字段==比较,那我们的是数组,则直接使用contains方法尝试

java 复制代码
{
    "_script": {
        "script": {
            "source": "if(params['_source']['wecom_friend'].contains('3150036230')){1}else{0}",
            "lang": "painless"
        },
        "type": "number",
        "order": "desc"
    }
}

执行可以看到,并没有匹配到

第二步,当前字段为long类型,所以是不是要去掉引号

执行报错

提示错误,需要改成long类型数字去匹配

第三步,修改后,执行成功

最终查询代码

java 复制代码
{
    "_script": {
        "script": {
            "source": "if(params['_source']['wecom_friend'].contains(3150036230L)){1}else{0}",
            "lang": "painless"
        },
        "type": "number",
        "order": "desc"
    }
}

Java代码实现

相关推荐
老陈头聊SEO5 小时前
从零打基础,掌握SEO提升网站流量与搜索排名
其他·搜索引擎·seo优化
Java 码思客7 小时前
【ElasticSearch从入门到架构师】第5章:ES DSL 检索语法精讲(核心重点)
大数据·elasticsearch
2601_9618752412 小时前
法考资料电子版|pdf|资料已整理
elasticsearch·搜索引擎·pdf·全文检索·solr·lucene·sphinx
MemoriKu14 小时前
Flutter 相册 APP 收尾优化实战:未分析任务横幅持久隐藏与标签回归测试补强
大数据·人工智能·flutter·elasticsearch·机器学习·搜索引擎·重构
陕西企来客14 小时前
2026 西安 GEO 优化市场深度解析:豆包更新后原因分析与行业变革
人工智能·搜索引擎
JAVA面经实录91715 小时前
Elasticsearch 完整版完整知识体系
java·elasticsearch·搜索引擎·es
吾店云建站15 小时前
生成式GEO优化指南:WordPress网站如何被ChatGPT、DeepSeek和豆包等AI引擎引用 - 吾店GEO
人工智能·搜索引擎·chatgpt·独立站
celiahul15 小时前
结构化内容:让网站同时适配搜索引擎与 AI 工具
人工智能·搜索引擎
Upsy-Daisy15 小时前
Hermes Agent 学习笔记 06:Skills 系统,Agent 如何把经验沉淀为可复用能力?
大数据·elasticsearch·搜索引擎
2601_9618454216 小时前
考研公共课资料推荐|英语数学政治|电子版|资料已整理
搜索引擎·中文分词·solr·lucene·sphinx·高考