全部产品
云市场

通过命令行工具创建排序脚本

更新时间:2020-04-10 20:13:08

排序脚本生命周期简介

排序脚本在opensearch中的生命周期描述如下:

  1. 创建排序脚本,创建脚本时需要指定应用名称、对应的版本id和脚本名称,为了区分脚本名称不要和在opensearch控制台上创建的表达式名称相同
  2. 上传脚本代码,脚本是使用opensearch提供的编程语言cava编写的代码,可以为未发布的脚本反复上传脚本代码
  3. 编译脚本,上传脚本内容之后,可以通过编译指令查看是否有语法错误,用户可以对未发布的脚本进行反复编译
  4. 发布脚本,脚本编译成功之后,如果需要应用到线上,即可对脚本进行发布操作,脚本发布之后不能再次上传代码和编译,只能删除
  5. 删除脚本,对不需要的脚本可以进行删除,删除之前请确保查询不在使用相关排序脚本,否则查询会报错
  6. 查看脚本,在上述各种操作过程中可以随时查看脚本状态

sortscript

sortscript是一个python命令行工具(python版本大于2.7),方便用户创建、维护、发布、删除排序脚本,用户可以通过访问下载地址获取。sortscript在使用sortscript之前需要用户在tools_conf.py中配置自己的AK与secret等信息。

使用sortscript创建排序脚本示例:

1.创建脚本

  1. python ./sortscript create --appName script_test --appVersionId 12345678 --scriptName script1

2.上传脚本代码,目录中有一个example.cava,cava具体的语法规则可以参考排序cava手册

  1. python ./sortscript updatecontent --appName script_test --appVersionId 12345678 --scriptName script1 --localFile ./example.cava

3.编译脚本,编译过程中可以能报一些语法错误,请根据提示进行修改

  1. python ./sortscript compile --appName script_test --appVersionId 12345678 --scriptName script1

4.发布脚本,确定脚本不需要再做修改之后,即可进行发布

  1. python ./sortscript release --appName script_test --appVersionId 12345678 --scriptName script1

5.查看脚本,如果指定scriptName表名需要查看某个脚本,否则会list出版本下的所有脚本

  1. python ./sortscript list --appName script_test --appVersionId 12345678 --scriptName script1
  2. python ./sortscript list --appName script_test --appVersionId 12345678

6.删除脚本,确定查询中没有在使用脚本时,在进行删除

  1. python ./sortscript delete --appName script_test --appVersionId 12345678 --scriptName script1

在查询中使用脚本进行排序

  1. 首先确定脚本已经发布
  2. 在查询中设置second_rank_name为脚本名称,为了区分脚本名称不要和在opensearch控制台上创建的表达式名称相同
  3. 在查询中设置second_rank_type为cava_script
  4. 如果脚本不存在,查询会有结果返回,但是会报错