Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Elasticsearch presentation 1

3,321 views

Published on

This is the first part of the presentation about elasticsearch

Published in: Software

Elasticsearch presentation 1

  1. 1. Elasticsearch (Presentation 01) By Maruf Hassan Email: maruf571@gmail.com
  2. 2. Contents ● Introduction ● Installation ● Configuration ● Tools(plugin) ● Terms used in Elasticsearch ● Talking with Elasticsearch ● Indexing data ● Retrieving data
  3. 3. Introduction What is Elasticsearch? ● Elasticsearch is an open-source search engine ● Elasticsearch is written in Java ● Built on top of Apache Lucene™ ● A distributed real-time document store where every field is indexed and searchable ● A distributed search engine with real-time analytics
  4. 4. Installation Setup ● Download zip file for elasticsearch web site (https://www.elastic.co/downloads/elasticsearch) ● Unzip it anywhere in you pc Run ● Go to unzip directory & run the following command ./bin/elasticsearch Test ● To test installation hit on browser @ http://localhost:9200/?pretty or curl 'http://localhost:9200/?pretty' “You Know, for Search” Yahoo! everything is file :)
  5. 5. Configuration ● elasticsearch.yml file is the main configuration file in the config directory ● Need restart Elasticsearch to perform update configuration(if you edit elasticsearch.yml )
  6. 6. Tools(plugin) Installation ● Marvel (plugin) is a monitoring tools, to install ./bin/plugin -i elasticsearch/marvel/latest ● Sense is interactive console inside Marvel.(I like it very much) ● Elasticsearch-head is a document browser, to install ./bin/plugin -install mobz/elasticsearch-head Run ● To run marvel hit brouwser @ http://localhost:9200/_plugin/marvel/ ● To run sence hit brouwser @ http://localhost:9200/_plugin/marvel/sense/ ● To run head hit brouwser @ http://localhost:9200/_plugin/head/
  7. 7. Terms used in Elasticsearch ● node: running instance of Elasticsearch ● cluster: group of nodes with the same cluster name ● elasticsearch = relational DB ● indices = databases ● types = tables ● documents = rows
  8. 8. Terms used in Elasticsearch ● fields = columns ● index (noun) = like a database in a traditional relational database ● Index (verb) = to index a document is to store a document in an index (noun) ● Inverted index = relational databases add an index, such as a B-tree index, to specific columns in order to improve the speed of data retrieval. Elasticsearch and Lucene use a structure called an inverted index for exactly the same purpose.
  9. 9. Talking to Elasticsearch Two way for java. Node client & Transport client 1. Node client: Work as a node in local cluster, but don’t hold any data 2. Transport client: Send request to remote cluster, don’t join One way for all ● RESTful API with JSON over HTTP Port ● Both Java clients talk to the cluster over port 9300 ● All other languages can communicate with Elasticsearch over port 9200 using RESTful API
  10. 10. Indexing data ● PUT verb used for indexing(inserting data) ● URL path contains three pieces of information index_name/type_name/id_of_document ● PUT body contain the document as a json Example: PUT /cefalo/employee/1 { "first_name" : "Maruf", "last_name" : "Hassan", "age" : 28, "about" : "Happy to help", "interests": [ "science", "music", "internet" ] }
  11. 11. Retrieve data Two way to retrieve data from Elasticsearch. Search Lite & Query DSL Search Lite ● allows us to build ad hoc searches ● parameters to be passed in the query string ● Used only for test environment Query DSL ● allows us to build much more complicated, robust queries ● expects a JSON request body and uses a rich search language called the query DSL ● Used for production environment
  12. 12. Retrieve data(Search Lite) ● Search for all employees in the index cefalo GET /cefalo/employee/_search ● searching for employees with their last name in cefalo index GET /cefalo/employee/_search? q=last_name:hassan
  13. 13. Retrieve data(Query DSL) ● Search for all employees in the cefalo index GET /cefalo/employee/_search{ } ● Searching for employees with their last name in the cefalo index GET /cefalo/employee/_search { "query" : { "match" : { "last_name" : "Hassan" } } }
  14. 14. Thanks &

×