Cava插件介绍
开放搜索支持用户自定义排序表达式满足自身业务的逻辑,其中包括:基础排序、业务排序、算法模型、功能型\业务型函数等功能。但其能力取决于排序表达式所支持的元素,特别是排序表达式的feature(特征)。
但当业务遇到较强的定制需求,排序公式也比较复杂,需要自己开发业务逻辑的时,业务排序和基础排序就不尽人意了,此时可以通过开放搜索提供的高级定制排序插件--cava语言,来满足更多样的业务排序需求。
今天小编重点和大家介绍一下cava这门高级定制编程语言的用法和能力~
Cava是OpenSearch引擎团队基于llvm实现的一门高效的编程语言,是一门面向对象的编程语言,语法和java类似,性能与c++相当。其优点可归为以下方面:
• 更强的灵活性和定制能力:Cava提供了较表达式更加丰富的语法功能,比如for循环,函数定义,类定义等,用户可以实现自己的业务需求。
• 更易于维护:Cava实现的排序插件比表达式更具有可读性,更易于维护。
• 更易于接受:Cava的语法和java类似,熟悉java的同学很容易使用cava进行开发,学习成本较低。
案例演示
cava使用流程
场景应用
案例:一个网站有多个频道,用户在搜索“下载”频道时优先展示该频道的内容,其次展示其他频道的内容,频道内部按照文本相关性进行排序。
分析:
1.优先展示某一频道内容:
用户需求按频道进行展示,文档中必然有一个字段用于存储这个文档属于哪些或哪一个频道。如果可以获取用户在查询中的频道,并且和文档中的频道进行匹配,两个是相同的并在算分时进行加权,这样就可以实现搜索的频道优先展示。
2.频道内部按照文本相关性进行排序
需要额外添加一个文本相关性的feature即可实现。
实操:
使用cava编写排序脚本
效果对比:
注意事项及更多内容
【功能介绍及演示视频】
https://help.aliyun.com/video_detail/187829.html?spm=a2c4g.11186623.6.998.4e139872IPnO3X
※ 目前仅支持开放搜索【独享型】应用配置
【共享型和独享型性能你对比】
https://help.aliyun.com/document_detail/189189.html?spm=a2c4g.11186623.6.564.74326d07hbatsl
以上就是开放搜索的新功能Cava的介绍,如果您对搜索与推荐相关技术感兴趣,欢迎加入钉钉群内交流
【开放搜索】新用户活动:阿里云实名认证用户享1个月免费试用
https://free.aliyun.com/product/opensearch-free-trial