插件初始化时创建elasticsearch索引

xiozqbni  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(333)

我正在尝试创建elasticsearch插件,并尝试在插件启动时创建一个索引(如果缺少)。
我想问,添加代码片段以创建代码的最佳位置是什么?我将它添加到一个注入绑定中,客户端作为构造函数参数,但出现以下错误:
没有已知的主节点,正在计划重试[2015-05-26 12:03:27289][error][bootstrap]{1.4.1}:初始化失败。。。1) uncategorizedexecutionexception[执行失败]executionexception[java.lang.nullpointerexception]nullpointerexception
我猜客户端还没有准备好处理索引创建请求,我的代码片段如下:
公共类索引器{

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();
} }

但是它产生了上面提到的错误,有什么想法吗?在这里发布有关组的帖子

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题