2017-07-12 11 views
0

バージョン5.1.1では、独自のメモリ内ElasticSearchサーバーを作成しました。ドキュメントの追加には正しく機能しますが、削除には失敗します。Delete_by_query conflicts proceedは、ElasticSearch 5.1.1 with netty4で動作しません。

Mavenの依存関係:ノードの設定の

<dependency> 
     <groupId>org.elasticsearch</groupId> 
     <artifactId>elasticsearch</artifactId> 
     <version>5.1.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.elasticsearch.plugin</groupId> 
     <artifactId>transport-netty4-client</artifactId> 
     <version>5.1.1</version> 
     <scope>test</scope> 
    </dependency> 

マップ:私はテストを実行すると

public boolean deleteType() throws IOException, CustomResponseException { 
    String query = "{\n" + " \"query\": {\n" + " \"match_all\": {}\n" + " }\n" + "}"; 
    HttpEntity entity = new NStringEntity(query, ContentType.APPLICATION_JSON); 
    Response indexResponse = restClient.performRequest("POST", 
      "/" + this.getIndex() + "/" + this.getType() + "/_delete_by_query?conflicts=proceed", 
      Collections.<String, String>emptyMap(), entity); 
    return processStatusCode(indexResponse.getStatusLine()) == 200; 
} 

は、私はエラーを取得する:一度に多くのドキュメントを削除するための

settingsMap.put("node.name", nodeName); 
    settingsMap.put("path.conf", "target"); 
    settingsMap.put("path.data", "target"); 
    settingsMap.put("path.logs", "target"); 
    settingsMap.put("path.home", "target"); 
    settingsMap.put("http.type", "netty4"); 
    settingsMap.put("http.port", httpPort); 
    settingsMap.put("transport.tcp.port", httpTransportPort); 
    settingsMap.put("transport.type", "netty4"); 
    settingsMap.put("action.auto_create_index", "false"); 

方法:

org.elasticsearch.client.ResponseException: POST http://localhost:9205/testindexer/indexer/_delete_by_query?conflicts=proceed : HTTP/1.1 400 Bad Request {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"request [/testindexer/indexer/_delete_by_query] contains unrecognized parameter: [conflicts]"}],"type":"illegal_argument_exception","reason":"request [/testindexer/indexer/_delete_by_query] contains unrecognized parameter: [conflicts]"},"status":400}

さらに、競合を起こさずに実行すると、そのドキュメントが作成されたという回答が得られます。なぜこのバージョンのドキュメントとは異なる動作をしていますか?ここで

は私のノードの状態である:

{ 
    "name" : "indexernode", 
    "cluster_name" : "elasticsearch", 
    "cluster_uuid" : "trP6UQg1SMKVyfR0qTEjYw", 
    "version" : { 
    "number" : "5.1.1", 
    "build_hash" : "5395e21", 
    "build_date" : "2016-12-06T12:36:15.409Z", 
    "build_snapshot" : false, 
    "lucene_version" : "6.3.0" 
}, 
"tagline" : "You Know, for Search" 
} 

答えて

0

サイドノート:これは、すべてのインデックスデータを削除する正しい方法ではありませんが、私はあなたがそれを知っていると思います。

restclientのパラメータをURLの一部としてではなくパラメータとして指定して、これが問題ではないことを確認してください。

ここでの主な問題は、elasticsearchの独自の埋め込みバージョンを実行していると言っていると思います(これはあなたがメモリ上で意味するものです)。 reindexプラグインがそのバージョンでインストールされていることを確認しましたか?

関連する問題