1
我正在尋找以編程方式獲取安裝在ElasticSearch羣集上的插件列表。雖然沒有一種使用其他API(我已經找到)實現這個功能的具體方法,但我能夠使用REST接口提出解決方案;但是,我想知道是否有一種方法可以使用JavaAPI來實現這一點。有沒有辦法使用JavaAPI獲取安裝在ElasticSearch上的插件列表?
我正在尋找以編程方式獲取安裝在ElasticSearch羣集上的插件列表。雖然沒有一種使用其他API(我已經找到)實現這個功能的具體方法,但我能夠使用REST接口提出解決方案;但是,我想知道是否有一種方法可以使用JavaAPI來實現這一點。有沒有辦法使用JavaAPI獲取安裝在ElasticSearch上的插件列表?
應儘可能這樣的:
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
import org.elasticsearch.action.admin.cluster.node.info.PluginInfo;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
...
Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "es160").build();
final Client client = new TransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress("127.0.0.1", 9300));
NodesInfoResponse nodesInfoResponse = client.admin().cluster().prepareNodesInfo().clear().setPlugins(true).get();
for (PluginInfo pluginInfo : nodesInfoResponse.getNodes()[0].getPlugins().getInfos()) {
System.out.println(pluginInfo.getName());
}
...
也就是說** **正是我所需要的;測試和它的作品。謝謝@Andrei – emilio