Elasticsearch Java API (ii): index create delete cluster management
Elastic official website has the authoritative Java API English needs to be patient to see here to tidy up the basic operation
Create a MAVEN project to add dependencies
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactid> ;transport</artifactid> <version>5.2.2</version> </dependency> <depend Ency> <groupId>net.sf.json-lib</groupId> <artifactid>json-lib</artifactid> ; <version>2.4</version> </dependency> <dependency> <groupid>org.apac He.logging.log4j</groupid> <artifactId>log4j-api</artifactId> <VERSION>2.7&L t;/version> </dependency> <dependency> <groupId>org.apache.logging.log4j< /groupid> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.locationtech.spatial4j</groupId> <Artifactid>spatial4j</artifactid> <version>0.6</version> </dependency> <dependency> <groupId>com.vividsolutions</groupId> <artifactid>jts</arti factid> <version>1.13</version> <exclusions> <exclusion> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.elasticsearch.plugin</groupId> <artifactid>delete-by-query</artifacti D> <version>2.4.1</version> </dependency>
First, customize a client to connect ES
/*** Created by Forgeeks at 2017-03-22 18:27*/ Public classmyclient {PrivateSettings Settings; Privatetransportclient Client; Privateindexresponse response; Publicindexresponse GetResponse () {returnresponse; } Public voidSetresponse (indexresponse response) { This. Response =response; } Publictransportclient getclient () {returnclient; } PublicMyClient (string clustername, String inetaddress, Integer port)throwsunknownhostexception {Settings= Settings.builder (). Put ("Cluster.name", ClusterName). Build (); Client=NewPrebuilttransportclient (Settings). addtransportaddress (Newinetsockettransportaddress (Inetaddress.getbyname (inetaddress), port)); } Public voidClose () {getclient (). Close (); }}
The connection method is very simple, according to the official copy on it.
Next look at the cluster status of the connection
/*** Print Cluster health status * *@paramClient*/ Public Static voidPrintclustesinfo (myclient client) {clusterhealthresponse healths=client.getclient (). Admin (). cluster (). Preparehealth (). get (); Map<string, clusterindexhealth> map =healths.getindices (); String clustername=Healths.getclustername (); intNumberofdatanodes =healths.getnumberofdatanodes (); intNumberofnodes =healths.getnumberofnodes (); System.out.println ("Cluster Name:" + clustername + "Data node Number:" + numberofdatanodes + "Get Node Number:" + numberofnodes + "index number:" +map.size ()); for(String key:map.keySet ()) {System.out.print (key+ " "); } }
Look at how to create INDEX, first of all to understand the same as the database, if it is already existing and new will throw an exception, so first check
/**determine if index exists * *@paramClient *@paramIndex *@return */ Public Static Booleanindexexists (myclient client, String index) {indicesexistsrequest request=Newindicesexistsrequest (index); Indicesexistsresponse Response=client.getclient (). Admin (). Indices (). exists (Request). Actionget (); if(Response.isexists ())return true; Else return false; } /*** CREATE INDEX and type * *@paramClient *@paramIndex *@paramtype *@throwsIOException*/ Public Static voidCreateIndex (myclient Client, string index, String type)throwsIOException {if(indexexists (client, index)) {SYSTEM.OUT.PRINTLN ("Index already exists"); return; } indexresponse Response=client.getclient (). Prepareindex (index, type). SetSource (Jsonbuilder (). StartObject (). EndObject ()). Get () ; Client.setresponse (response); System.out.print (response.tostring ()+ "Index successfully created"); }
Creating a successful console will have information
Or hit the command line to note that the win and Linux under the curl may not be able to use only installed to use the win even if you can use it or not to build a virtual machine according to (a) the way to run another ES cluster setup next again
The cluster re-use Xshell can be used directly with the Linux curl and will be completely liberated.
[Email protected] config]# curl-xget 132.126.3.180:9200/_cat/indices?v
Okay, here we are. (c) Search
Elasticsearch Java API (ii): index create delete cluster management