xuekangle / esplugins

elasticsearch的java插件开发。查询es时,计算数组数据的欧式距离或余弦距离。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elasticsearch的Java插件开发

代码说明

* 插件的入口类需要继承Plugin抽象类,实现ScriptPlugin接口,这个配置在property配置中设置,即classname。
* 插件入口类需要实现ScriptEngine接口类

打包发布

* 使用assembly,将打包成zip包,里面包括所有依赖的jar和配置
* 使用时,将zip包解压到elasticsearch的plugins目录下

注意:

* es中的字段数据feature为float数组转成的base64数据。根据需要可以自定义数据纬度,本项目纬度必须是8的倍数。
* 本插件适用于6.5.4版本,其他版本暂未测试。
* 测试中,对两个地图经纬度做了欧式距离计算,可以应用于app中附近人的搜索。地图经纬度float数组需要补充到了8位做计算。也可不补充长度,对比分计算做修改,适用于自己项目。
* 该插件同样适用于图搜中图片的相似度比较。里边有欧氏距离算法和余弦算法,比较图片相似度。

About

elasticsearch的java插件开发。查询es时,计算数组数据的欧式距离或余弦距离。


Languages

Language:Java 72.2%Language:Shell 27.8%