10

私は最近Elasticsearchを発見し、遊びをすることにしました。残念ながら、インデックスの追加に問題があります。

インデックスの追加に使用されるコードは次のとおりで、新しいインデックスを追加しようとするたびに実行されます。

 public void index ( String index, String type, String id, String json ){
     Node node = null;
     try{
         node = nodeBuilder().node();
         Client client = node.client();
         IndexResponse response = client.prepareIndex( index, type, id )
         .setSource( json )
         .execute()
         .actionGet();
     }
     catch ( Exception e ){
         Logger.error( e, " Error indexing JSON file: " + json );
     } 
     finally {
         if( node != null)
             node.close();
     }
 }

インデックスが追加されていないようで、クラスターの階層は現在赤です(シャードの1つが赤であるため)が、これを解決する方法がわかりません。インデックスが毎回追加されているという確認を受け取っていますが、検索時またはes-adminに表示されません。

すべてのヘルプやアイデアは大歓迎です。

4

1 に答える 1

5

ノードを起動するときに考慮すべき一般的な設定の1つは、ノードがデータを保持する必要があるかどうかです。つまり、インデックスとシャードを割り当てる必要があります。多くの場合、クライアントをクライアントにしたいのですが、シャードは割り当てられていません[1]。

クライアントを非データクライアント(シャードなし)として設定する場合は、次のように置き換えてみてください。

node = nodeBuilder().node();

これとともに:

node = nodeBuilder().client(true).node();

[1] http://www.elasticsearch.org/guide/reference/java-api/client.html

于 2011-05-13T19:36:52.423 に答える