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();
     }
 }

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

非常感谢所有帮助或想法。

4

1 回答 1

5

启动节点时,要考虑的常见设置之一是它是否应该保存数据。换句话说,是否应该为它分配索引和分片。很多时候,我们希望客户只是客户,而不给他们分配分片 [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 回答