【ELK】ElasticSearch插件demo

环境:

操作系统:win7

elasticsearch版本:5.4.4

java:1.8


参考文章:

1、Elasticsearch权威指南(中文版)

2、Elasticsearch笔记五之java操作es

3、java操作ElasticSearch(es)进行增删查改操作

4、ElasticSearch入门-增删改查(CRUD)

5、elasticsearch——Java API的使用

6、elasticsearch源码分析之plugin的开发

7、Elasticsearch 5.X下JAVA API使用指南

——————————————————————————————————————

8、elasticsearch5.2.2 插件开发(一)

9、elasticsearch5.2.2 插件开发(二) 第一个有实际功能的插件 - CSDN博客

10、elasticsearch5.2.2 插件开发(三)ScriptPlugin 的实现 - CSDN博客

——————————————————————————————————————

11、Maven通俗讲解

12、如何添加本地JAR文件到Maven项目中 - CSDN博客

13、Maven Repository: weka

14、maven系列--maven添加第三方、本地依赖 - CSDN博客

15、Maven配置项目依赖使用本地仓库的方法汇总 - EasonJim - 博客园


有关打包部分的视频在我的百度网盘 

链接:https://pan.baidu.com/s/1DuIWN2uDtcA8guP_Ny91Vw 密码:tj65


第一部分:代码

一、创建maven项目

首先创建一个maven项目,填写Group Id为com.plugin和Artifact Id为esPlugin。其中Artifact Id是项目名,Group Id是项目中包的名字。



二、修改pom.xml配置文件

修改pom.xml文件,然后右键项目名->maven->update maven。会发现在Maven Dependencies文件夹下多了很多包(见下图),这些都是pom.xml文件添加进去的依赖,省去了手动导包的麻烦。(包全是在maven的中央仓库下载到本地的,pom.xml代码见页面底部。)



三、核心代码实现

代码目录如下(用的是之前的项目的截图,忽略顶部的包名),在文后的链接中下载项目,会有这么多包,真正用到的和需要修改的类是TasteEventRestAction.java,这里面包括注册URL,以及执行对应的操作。


package com.taste.elasticsearch_taste.rest;

import static com.taste.elasticsearch_taste.action.LoggerUtils.emitErrorResponse;
import static org.elasticsearch.rest.RestRequest.Method.POST;

import java.io.File;
import java.io.IOException;

import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.node.NodeClient;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.rest.BaseRestHandler;
import org.elasticsearch.rest.BytesRestResponse;
import org.elasticsearch.rest.RestController;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.rest.action.search.RestSearchAction;
import org.elasticsearch.search.SearchHits;

import com.pligin.esPlugin.action.TasteEventAction;
import com.pligin.esPlugin.common.TasteEventRequestBuilder;
import com.pligin.esPlugin.common.TasteEventResponse;

//我项目中的类
//import ding.util.ESUtil.ActionParameter;
//import ding.util.WEKAUtil.MeachineLearningBuilder;


public class TasteEventRestAction extends BaseRestHandler{
	public ActionParameter parameter;
	
	@Inject
	public TasteEventRestAction(final Settings settings,final RestController restController) {
		super(settings);
		restController.registerHandler(RestRequest.Method.GET, "/_taste/{action}", this); // 注册URL1,该URL中最后的字符串赋给变量action
		restController.registerHandler(RestRequest.Method.GET, "/_taste", this); // 注册URL2
	}
	
	@Override
	protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
		if (request.method() == POST && !request.hasContent()) {
            return channel -> emitErrorResponse(channel, logger, new IllegalArgumentException("Req
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值