ElasticSearch 做为数据仓库处理速度确实很强,但是很多和业务相关的函数ElasticSearch怎么支持的,通过查询发现,ElasticSearch支持自定义插件(相当于自定义函数),通过自定义插件,开发人员可以实现各种业务相关的函数定义供相关人员使用。
1. ElasticSearch 自定义插件编写
后续补充。
2. ElasticSearch 自定义插件打包
2.1 自定义插件开发完成后,需要增加“plugin-descriptor.properties”配置文件,需要配置的信息有:
-
- description:插件的描述信息,用来描述该插件的作用
- version:插件的版本信息
- name:插件在elasticsearch plugin中显示的名称
- classname:插件的入口,需要实现Iplugin接口
- java.version:插件采用的java版本信息
- elasticsearch.version:插件发布到elasticsearch的那个特定版本上 可选属性(作用暂时未知)
- site:true表示发布为网站形式,_site目录下的内容将会起作用。
- jvm:true表示设置的classname对应的类将会被加载,对于依赖的资源,配置等信息也需要打包成jar
2.2 生成该文件后,将该properties文件与jar包放到一个名称为elasticsearch的文件夹中,然后将该elasticsearch文件夹压缩成zip文件,完成插件的打包过程
3. ElasticSearch 自定义插件部署
3.1 在elasticsearch服务器上进入elasticsearch的根目录;下列命令的执行需要使用管理员权限执行。
3.2 在根目录下执行./bin/elasticsearch-plugin list 展示所有的插件
3.3 执行./bin/elasticsearch-plugin install file:///abstractDirectory/zipfile.zip 来安装插件,其中file://后跟的是zip文件的绝对目录。
3.4 如果要删除不再使用的插件,执行./bin/elasticsearch-plugin remove plugin.name,如下图中plugin.name名称为sql,此sql为plugin-description.properties中配置的name。
4. ElasticSearch 自定义插件的使用
本例子安装的插件是elasticsearch-sql插件,详见:https://github.com/NLPchina/elasticsearch-sql/。 使用方法为curl -XGET http://xx.xx.xx.xx:9200/_sql?sql=select * from indexName,sql参数后边跟的是标准sql语句,该插件会自动转化为elasticsearch 查询语言去es执行。详细使用方法见官网。