Elasticsearch索引在插件初始化时创建

时间:2015-05-27 09:09:29

标签: java elasticsearch elasticsearch-plugin

我正在尝试使用elasticsearch插件创建,我正在尝试在插件启动时创建索引(如果缺少)。

我想问一下,为代码创建添加代码段的最佳位置是什么?我已将其添加到客户端作为构造函数参数的注入绑定,但我收到以下错误:

  

没有已知主节点,安排重试[2015-05-26   12:03:27,289] [ERROR] [bootstrap] {1.4.1}:   初始化失败... 1)UncategorizedExecutionException [失败   执行]       ExecutionException当[显示java.lang.NullPointerException]           的NullPointerException

我的猜测是客户端尚未准备好处理索引创建请求,我的代码片段如下:

  

公共类IndexCreator {

private final String indexName;
private final ESLogger LOG;

@Inject
public IndexCreator(Settings settings, Client client) {
    this.LOG = Loggers.getLogger(getClass(), settings);
    this.indexName = settings.get("metis.index.name", ".metis");

       String indexName = ".metis-registry";

       IndicesExistsResponse resp = client.admin().indices().prepareExists(indexName).get();

       if (!resp.isExists()) {
           client.admin().indices().prepareCreate(indexName).get();
       } 
} }

我将其添加为绑定到我的模块

  

公共类MyModule扩展了AbstractModule {

private final Settings settings;

public MyModule(Settings settings) {
    this.settings = Preconditions.checkNotNull(settings);
}

@Override
protected void configure() {
    bind(IndexCreator.class).asEagerSingleton();
} }

但它会产生过多提及的错误,任何想法?群组here

上的相关帖子

0 个答案:

没有答案