Elasticsearch - 分配碎片

My *_*rts 9 java sharding elasticsearch

我最近发现了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();
     }
 }
Run Code Online (Sandbox Code Playgroud)

似乎没有添加索引,我的Cluster helath当前是红色的(因为其中一个分片是红色的),但我不知道如何解决这个问题.我收到确认我的索引每次都被添加但是在搜索时或在es-admin中没有显示.

非常感谢所有的帮助或想法.

jos*_*ngs 5

启动 Node 时,要考虑的常见设置之一是它是否应该保存数据。换句话说,索引和分片是否应该分配给它。很多时候,我们希望客户端只是客户端,而不需要为它们分配分片 [1]。

如果您想将您的客户端设置为非数据客户端(无分片),请尝试通过替换以下内容来进行设置:

node = nodeBuilder().node();
Run Code Online (Sandbox Code Playgroud)

有了这个:

node = nodeBuilder().client(true).node();
Run Code Online (Sandbox Code Playgroud)

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