成都创新互联网站制作重庆分公司

如何利用elasticsearch插件进行开发-创新互联

如何利用elasticsearch插件进行开发?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

站在用户的角度思考问题,与客户深入沟通,找到隆昌网站设计与隆昌网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖隆昌地区。

检索引擎Elasticsearch支持插件模式。有些时候你可能须要安装一些插件。甚至自己开发插件,这里就提供一个開始ES插件开发演示样例,ES版本号为1.5.2。

一、插件类继承自org.elasticsearch.plugins.AbstractPlugin

package org.elasticsearch.plugin.helloworld;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

import org.elasticsearch.common.component.LifecycleComponent;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.plugins.AbstractPlugin;
import org.elasticsearch.rest.RestModule;

public class HelloWorldPlugin extends AbstractPlugin {
 final ESLogger logger = Loggers.getLogger(getClass());

 @Override
 public String name() {
 //插件名称
 return "HelloWorld";
 }

 @Override
 public String description() {
 //插件描写叙述
 return "Hello World Plugin";
 }
 
 //处理模块,由于系统中有非常多种Module,所以须要对其类型进行推断
 @Override
 public void processModule(Module module) {
 if(module instanceof RestModule) {
  ((RestModule)module).addRestAction(HelloWorldHandler.class);
 }
 
 if(module instanceof HelloModule) {
  logger.info("############## process hello module #####################");
 }
 }
 
 @Override
 public Collection modules(Settings settings) {
 //创建自己的模块集合
 //假设没有自己定义模块,则能够返回空
 HelloModule helloModule = new HelloModule();
 ArrayList list = new ArrayList<>();
 list.add(helloModule);
 Collections.unmodifiableList(list);
 return list;
 }
 
 @SuppressWarnings("rawtypes")
 @Override
 public Collection> services() {
 //创建自己的服务类集合,服务类须要继承自LifecycleComponent。ES会自己主动创建出服务类实例,并调用其start方法
 //假设没有自己定义服务类。则能够返回空
 Collection> list = new ArrayList<>();
 list.add(HelloService.class);
 return list;
 }
 
}

本文题目:如何利用elasticsearch插件进行开发-创新互联
本文URL:http://cxhlcq.com/article/gjsch.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部