
ElasticSearch Cookbook
By :

This recipe shows a sample of using the HTTP protocol.
You need a working ElasticSearch cluster. Using default configuration the 9200 port is open in your server to communicate with.
The standard RESTful protocol, it's easy to integrate.
Now, I'll show how to easily fetch the ElasticSearch greeting API on a running server at 9200 port using several ways and programming languages.
For every language sample, the answer will be the same:
{ "ok" : true, "status" : 200, "name" : "Payge, Reeva", "version" : { "number" : "0.90.5", "snapshot_build" : false }, "tagline" : "You Know, for Search" }
In BASH:
curl –XGET http://127.0.0.1:9200
In Python:
import urllib result = urllib.open("http://127.0.0.1:9200")
In Java:
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; … try { // get URL content URL url = new URL("http://127.0.0.1:9200"); URLConnection conn = url.openConnection();// open the stream and put it into BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; while ((inputLine = br.readLine()) != null){ System.out.println(inputLine); } br.close(); System.out.println("Done"); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
In Scala:
scala.io.Source.fromURL("http://127.0.0.1:9200","utf-8").getLines.mkString("\n")
Every client creates a connection to the server and fetches the answer. The answer is a valid JSON object. You can call ElasticSearch server from any language that you like.
The main advantages of this protocol are as follows:
In this book a lot of examples are used calling the HTTP API via command-line cURL program. This approach is very fast and allows you to test functionalities very quickly.
Every language provides drivers to best integrate ElasticSearch or RESTful web services.
ElasticSearch community provides official drivers that support the various services.
Change the font size
Change margin width
Change background colour