elasticsearch 权重排序
现在有两个字段:名字和机构,因项目需要,使用的是keyword类型。
name,organizationName
现在设计需要,要按照** 检索词**匹配度进行排序。
姓名匹配字数/姓名总字数 x 80% + 机构匹配字数/机构总字数 x 20%
比如: 搜索词是 “张三”,
姓名:“张三的名字” (匹配到两个字,就是2,总字数5)
机构:“张三上海张三机构”,(匹配到四个字,就是4,总字数8)
则:2/5x0.8 + 4/8x0.2 这个结果就是这条的分数。
我想使用script painless实现,但是现在问题是es配置不支持正则,连基本的分割字符串split也不能使用。运维应该也不想开这个,影响效率。
想过能否使用java代码结合,但是script脚本中不支持 java代码工具类传参。
能否使用正常的脚本实现该功能?或者其他的解决方案?