ElasticSearch中的Scirpt Score查询

作者 : admin 本文共707个字,预计阅读时间需要2分钟 发布时间: 2024-06-10 共1人阅读

文章目录

  • Script Score查询
    • 1.1 Painless简介
    • 1.2 在Script Score中使用Painless
    • 1.3 使用文档数据
      • 1.3.1 使用普通字段
      • 1.3.2 使用数组字段
      • 1.3.3 使用object类型的字段
      • 1.3.4 使用文档评分
    • 1.4 向脚本传参
    • 1.5 在Script Score中使用函数
      • 1.5.1 saturation函数
      • 1.5.2 sigmoid函数
      • 1.5.3 使用随机函数
      • 1.5.4 使用向量计算函数
      • 1.5.5 使用衰减函数
    • 1.6 在Java客户端中使用Script Score

Script Score查询

  ES提供的Script Score查询可以以编写脚本的方式对文档进行灵活打分,以实现自定义干预结果排名的目的。Script Score默认的脚本语言为Painless,在Painless中可以访问文档字段,也可以使用ES内置的函数,甚至可以通过给脚本传递参数这种方式联通内部和外部数据。

1.1 Painless简介

  Painless语言是一种专门用于ES中的脚本语言,它使用了类似于Groovy的语法。ES使用了沙箱技术运行Painless,且在Painless中没有任何网络连接的功能,因此它在安全性方面是有保障的。Painless是被编译成JVM字节码后运行的,从语法上看是Java的子集。

1.变量

变量在使用之前必须先进性声明,其声明方式和Java保持一致。如果变量在声明时没有指定值,则使用变量类型对应的默认值。

2.数据类型

Painless支持的原始类型有byte、short、char、int、long、float、double和boolean。可以按照Java的方式声明它们:

int i=0;
boolean t=
本站无任何商业行为
个人在线分享 » ElasticSearch中的Scirpt Score查询
E-->