Slide 1
Most trusted JOB oriented professional program
DevOps Certified Professional (DCP)

Take your first step into the world of DevOps with this course, which will help you to learn about the methodologies and tools used to develop, deploy, and operate high-quality software.

Slide 2
DevOps to DevSecOps – Learn the evolution
DevSecOps Certified Professional (DSOCP)

Learn to automate security into a fast-paced DevOps environment using various open-source tools and scripts.

Slide 2
Get certified in the new tech skill to rule the industry
Site Reliability Engineering (SRE) Certified Professional

A method of measuring and achieving reliability through engineering and operations work – developed by Google to manage services.

Slide 2
Master the art of DevOps
Master in DevOps Engineering (MDE)

Get enrolled for the most advanced and only course in the WORLD which can make you an expert and proficient Architect in DevOps, DevSecOps and Site Reliability Engineering (SRE) principles together.

Slide 2
Gain expertise and certified yourself
Azure DevOps Solutions Expert

Learn about the DevOps services available on Azure and how you can use them to make your workflow more efficient.

Slide 3
Learn and get certified
AWS Certified DevOps Professional

Learn about the DevOps services offered by AWS and how you can use them to make your workflow more efficient.

previous arrow
next arrow

What are the method to interact with Elastic Search?

Spread the Knowledge

Elasticsearch provides official clients for several languages—Groovy, JavaScript, .NET, PHP, Perl, Python, and Ruby—and there are numerous community-provided clients and integrations, all of which can be found in

There are various following methods which is available…

  • Java REST Client
  • Java API
  • JavaScript API
  • Groovy API
  • .NET API
  • PHP API
  • Perl API
  • Python API
  • Ruby API
  • Community Contributed Clients

Details can be found here.
https://www.elastic.co/guide/en/elasticsearch/client/index.html

RESTful API with JSON over HTTPedit
All other languages can communicate with Elasticsearch over port 9200 using a RESTful API, accessible with your favorite web client.

A request to Elasticsearch consists of the same parts as any HTTP request:

[code]curl -X<VERB> ‘<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>’ -d ‘<BODY>'[/code]

The parts marked with < > above are:

VERB The appropriate HTTP method or verb: GET, POST, PUT, HEAD, or DELETE.
PROTOCOL Either http or https (if you have an https proxy in front of Elasticsearch.)
HOST The hostname of any node in your Elasticsearch cluster, or localhost for a node on your local machine.
PORT The port running the Elasticsearch HTTP service, which defaults to 9200.
PATH API Endpoint (for example _count will return the number of documents in the cluster). Path may contain multiple components, such as _cluster/stats or _nodes/stats/jvm
QUERY_STRING Any optional query-string parameters (for example ?pretty will pretty-print the JSON response to make it easier to read.)
BODY A JSON-encoded request body (if the request needs one.)

JAVA API

In case of Java based, Elasticsearch has been deleloped using Java so Elasticsearch comes with two built-in clients that you can use in your code:

Node client
The node client joins a local cluster as a non data node. In other words, it doesn’t hold any data itself, but it knows what data lives on which node in the cluster, and can forward requests directly to the correct node.

Transport client
The lighter-weight transport client can be used to send requests to a remote cluster. It doesn’t join the cluster itself, but simply forwards requests to a node in the cluster.

Both Java clients talk to the cluster over port 9300, using the native Elasticsearch transport protocol. The nodes in the cluster also communicate with each other over port 9300. If this port is not open, your nodes will not be able to form a cluster.

Difference between Transport client Vs Node client
The transport client acts as a communication layer between the cluster and your application. It knows the API and can automatically round-robin between nodes, sniff the cluster for you, and more. But it is external to the cluster, similar to the REST clients.

The node client, on the other hand, is actually a node within the cluster (but does not hold data, and cannot become master). Because it is a node, it knows the entire cluster state (where all the nodes reside, which shards live in which nodes, and so forth). This means it can execute APIs with one less network hop.

Uses-cases for Transport client and Node client
The transport client is ideal if you want to decouple your application from the cluster. For example, if your application quickly creates and destroys connections to the cluster,a transport client is much “lighter” than a node client, since it is not part of a cluster.

Similarly, if you need to create thousands of connections, you don’t want to have thousands of node clients join the cluster. The TC will be a better choice.

On the flipside, if you need only a few long-lived, persistent connection objects to the cluster, a node client can be a bit more efficient since it knows the cluster layout. But it ties your application into the cluster, so it may pose problems from a firewall perspective.

Good Read can be found here as well
https://stackoverflow.com/questions/15398861/elasticsearch-nodebuilder-vs-tranportclient

Elasticsearch transport client example
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
https://www.programcreek.com/java-api-examples/?api=org.elasticsearch.client.transport.TransportClient
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html

Elasticsearch node client example
https://www.programcreek.com/java-api-examples/?api=org.elasticsearch.node.NodeBuilder
https://github.com/elastic/elasticsearch-js

Reference
https://www.elastic.co/guide/en/elasticsearch/client/index.html

Rajesh Kumar
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x