我最近发现了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中都没有显示。
非常感谢所有帮助或想法。
答案 0 :(得分:4)
启动节点时,需要考虑的一个常见设置是它是否应该保存数据。换句话说,应该为其分配索引和分片。很多时候我们希望客户只是客户端,没有分配给他们[1]。
如果您想将您的客户端设置为非数据客户端(无分片),请尝试将其替换为:
node = nodeBuilder().node();
用这个:
node = nodeBuilder().client(true).node();
[1] http://www.elasticsearch.org/guide/reference/java-api/client.html