排序腳本生命周期簡介
排序腳本在opensearch中的生命周期描述如下:
創建排序腳本,創建腳本時需要指定應用名稱、對應的版本ID和腳本名稱,為了區分腳本名稱不要和在opensearch控制臺上創建的表達式名稱相同。
上傳腳本代碼,腳本是使用opensearch提供的編程語言cava編寫的代碼,可以為未發布的腳本反復上傳腳本代碼。
編譯腳本,上傳腳本內容之后,可以通過編譯指令查看是否有語法錯誤,用戶可以對未發布的腳本進行反復編譯。
發布腳本,腳本編譯成功之后,如果需要應用到線上,即可對腳本進行發布操作,腳本發布之后不能再次上傳代碼和編譯,只能刪除。
刪除腳本,對不需要的腳本可以進行刪除,刪除之前請確保查詢不再使用相關排序腳本,否則查詢會報錯。
查看腳本,在上述各種操作過程中可以隨時查看腳本狀態。
sortscript
sortscript是一個python命令行工具(python版本大于2.7),方便用戶創建、維護、發布、刪除排序腳本,用戶可以通過訪問下載地址獲取。sortscript在使用sortscript之前需要用戶在tools_conf.py中配置自己的AK與secret等信息。
使用sortscript創建排序腳本示例:
1.創建腳本
python ./sortscript create --appName script_test --appVersionId 12345678 --scriptName script1
2.上傳腳本代碼,目錄中有BasicSimilarityScorer.cava 和 IntelligenceAlgorithm.cava,cava具體的語法規則可以參考cava手冊。
python ./sortscript updatecontent --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName BasicSimilarityScorer.cava --localFile ./BasicSimilarityScorer.cava
python ./sortscript updatecontent --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName IntelligenceAlgorithmScorer.cava --localFile ./IntelligenceAlgorithmScorer.cava
3.編譯腳本,編譯過程中可以能報一些語法錯誤,請根據提示進行修改。
python ./sortscript compile --appName script_test --appVersionId 12345678 --scriptName script1
4.發布腳本,確定腳本不需要再做修改之后,即可進行發布。
python ./sortscript release --appName script_test --appVersionId 12345678 --scriptName script1
5.查看腳本,如果指定scriptName表名需要查看某個腳本,否則會list出版本下的所有腳本。
python ./sortscript list --appName script_test --appVersionId 12345678 --scriptName script1
python ./sortscript list --appName script_test --appVersionId 12345678
6.查看文件內容。
python ./sortscript getcontent --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName BasicSimilarityScorer.cava
python ./sortscript getcontent --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName IntelligenceAlgorithmScorer.cava
7.刪除文件。
python ./sortscript deleteScriptFile --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName BasicSimilarityScorer.cava
python ./sortscript deleteScriptFile --appName script_test --appVersionId 12345678 --scriptName script1 --scriptFileName IntelligenceAlgorithmScorer.cava
8.刪除腳本,確定查詢中沒有在使用腳本時,在進行刪除。
python ./sortscript delete --appName script_test --appVersionId 12345678 --scriptName script1
在查詢中使用腳本進行排序
首先確定腳本已經發布。
在查詢中設置second_rank_name為腳本名稱,為了區分腳本名稱不要和在opensearch控制臺上創建的表達式名稱相同。
在查詢中設置second_rank_type為cava_script。
如果腳本不存在,查詢會有結果返回,但是會報錯。