0
私のアプリケーションでES-2.4.0を使用していますが、単一のクエリで複数の文書を削除するというユースケースがあります。私は、クエリプラグインによって削除を使用しようとしているが、以下クエリで削除| elasticsearc 2.4.0
Caused by: java.lang.IllegalStateException: failed to find action [email protected]3a2] to execute
at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:56)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:359)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:86)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:56)
at org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder.execute(DeleteByQueryRequestBuilder.java:172)
次の例外が直面していることは、私の実装です
if (StringUtils.isEmpty(clusterNodes)) {
// embedded mode
Settings.Builder settings = Settings.settingsBuilder().put("path.home", "./");
if(embeddedTcpPort!=null){
settings.put("transport.tcp.port", embeddedTcpPort);
}
if(Boolean.valueOf(httpEnable)){
settings.put("http.enabled", true);
if(embeddedHttpPort!=null){
settings.put("http.port", embeddedHttpPort);
}
}
Node node = nodeBuilder()
.local(true)
.settings(settings.put("plugin.types","org.elasticsearch.plugin.deletebyquery.DeleteByQueryPlugin").build()) //added delete plugin
.node();
node.start();
this.client = node.client();
} else {
// cluster mode
String[] clients = StringUtils.split(clusterNodes, ",");
Settings settings = Settings.settingsBuilder().put("cluster.name",
clusterName).build();
TransportClient tClient = TransportClient.builder().settings(settings).addPlugin(DeleteByQueryPlugin.class).build();
for (String val : clients) {
String[] pair = val.split(":");
if (pair.length != 2) {
throw new IllegalArgumentException(
Messages.ES_CLIENT_NODE_ERROR);
} else {
try {
tClient.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName(pair[0]), Integer.parseInt(pair[1])));
} catch (UnknownHostException ex) {
throw new IllegalStateException("Could not set up ElasticSearch connection", ex);
}
}
}
this.client = tClient;
}
私のMavenの依存
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>delete-by-query</artifactId>
<version>2.4.0</version>
</dependency>
私を助けてくださいていますこっちで。私はどのように進めて、私は間違っているのですか? クエリプラグインによって削除はES2.4.0で利用できますか?おかげ
私はプラグインをインストールしていませんが、組み込みモードとクラスタモードの両方に追加しました。 – MrG
私は自分のコードに追加しました(私のコードで見ることができます)。しかし、それをインストールしていない。私は私のコードでそれを追加していますが、私はそれをインストールする必要がありますか? – MrG
クラスタ内の各ノードにプラグインをインストールする必要があります。 _プラグインはクラスタ内のすべてのノードにインストールする必要があり、インストール後に各ノードを再起動する必要があります._ https://www.elastic.co/guide/en/elasticsearch/plugins/2.4/plugins-delete-by-query .html –