{"id":2220,"date":"2016-01-02T01:07:25","date_gmt":"2016-01-02T00:07:25","guid":{"rendered":"http:\/\/codingexplained.com\/?p=2220"},"modified":"2017-06-11T19:06:52","modified_gmt":"2017-06-11T17:06:52","slug":"introduction-to-elasticsearch","status":"publish","type":"post","link":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch","title":{"rendered":"Introduction to Elasticsearch"},"content":{"rendered":"<p>Elasticsearch is an open source search server that is built on Apache Lucene. It uses Lucene as the core search engine, but provides many features that are not part of Lucene. For example, usage of Elasticsearch relies on a comprehensive REST API. Like Apache Lucene, Elasticsearch is written in Java and is therefore cross-platform and will work on many different operating systems. Elasticsearch was designed to be scalable from the beginning, which means that it has a distributed architecture. It&#8217;s designed to take data from any data source and make it searchable.<\/p>\n<p>Communication with Elasticsearch is done through an HTTP REST API. For instance, consider the example where an employee is\u00a0fetched by issuing an HTTP request using cURL. We will see plenty of examples of this throughout this series, so we are\u00a0not going to go into the details of this right now, but just know that requests usually follow the pattern that you see below, where the ID is optional.<\/p>\n<pre><code>curl -X[HTTP method] [node address]:[port]\/[index name]\/[type name]\/[ID]<\/code><\/pre>\n<p><strong>E.g:<\/strong><\/p>\n<pre><code>E.g. curl -X GET http:\/\/localhost:9200\/mywebshop\/employee\/123<\/code><\/pre>\n<p>The documents that are stored in\u00a0Elasticsearch are JSON documents that are schema-less, much like in NoSQL databases. This means that you don&#8217;t have to define fields and their data types\u00a0before adding data like is the case for relational databases, for instance. Elasticsearch is open source, but is being developed by Elasticsearch BV,\u00a0which is a company that provides commercial solutions related to the search engine. Elasticsearch is near real-time, meaning that from the point in time\u00a0that one adds, modifies or deletes a document, the changes are propagated throughout the entire cluster within one or two seconds. For small clusters,\u00a0the changes will practically be propagated faster. Because of its distributed and scalable architecture, changes are not immediately available like in a\u00a0relational database that runs on a single machine, for instance.<\/p>\n<h3>Prominent Users<\/h3>\n<p>Elasticsearch has gotten very popular and hyped in the past few years. Part of its success is because of how easy it is to use compared to its\u00a0competitors such as Apache Solr, but also because of the comprehensive feature set. Within the enterprise, its success is also much due to the fact that\u00a0it scales extremely well thanks to its distributed architecture. On this slide, I just wanted to show you that the hype is not without reason, because a\u00a0lot of large organizations make use of Elasticsearch, as you can see on this list of prominent users.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"series\">Part 1 of 35 in the <a href=\"https:\/\/codingexplained.com\/tutorial\/complete-guide-to-elasticsearch\" class=\"series-163\" title=\"Complete Guide to Elasticsearch\">Complete Guide to Elasticsearch<\/a> series<\/div><p>Elasticsearch is an open source search server that is built on Apache Lucene. It uses Lucene as the core search engine, but provides many features that are not part of Lucene. For example, usage of Elasticsearch relies on a comprehensive REST API. Like Apache Lucene, Elasticsearch is written in Java and is therefore cross-platform and&hellip; <a href=\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\" class=\"more-link\">read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[154],"tags":[155],"series":[163],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introduction to Elasticsearch<\/title>\n<meta name=\"description\" content=\"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Elasticsearch\" \/>\n<meta property=\"og:description\" content=\"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\" \/>\n<meta property=\"og:site_name\" content=\"Coding Explained\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codingexplained\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/codingexplained\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-02T00:07:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-06-11T17:06:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codingexplained.com\/wp-content\/uploads\/2015\/11\/codingexplained-fb-promote.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"444\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Bo Andersen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@codingexplained\" \/>\n<meta name=\"twitter:site\" content=\"@codingexplained\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bo Andersen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\",\"url\":\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\",\"name\":\"Introduction to Elasticsearch\",\"isPartOf\":{\"@id\":\"https:\/\/codingexplained.com\/#website\"},\"datePublished\":\"2016-01-02T00:07:25+00:00\",\"dateModified\":\"2017-06-11T17:06:52+00:00\",\"author\":{\"@id\":\"https:\/\/codingexplained.com\/#\/schema\/person\/e19c92ec991f571605f047cefeaa950d\"},\"description\":\"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.\",\"breadcrumb\":{\"@id\":\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/codingexplained.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to Elasticsearch\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/codingexplained.com\/#website\",\"url\":\"https:\/\/codingexplained.com\/\",\"name\":\"Coding Explained\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/codingexplained.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/codingexplained.com\/#\/schema\/person\/e19c92ec991f571605f047cefeaa950d\",\"name\":\"Bo Andersen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codingexplained.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/28f5826f9d5d544b0c5e1ec321dfdfb8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/28f5826f9d5d544b0c5e1ec321dfdfb8?s=96&d=mm&r=g\",\"caption\":\"Bo Andersen\"},\"description\":\"I am a back-end web developer with a passion for open source technologies. I have been a PHP developer for many years, and also have experience with Java and Spring Framework. I currently work full time as a lead developer. Apart from that, I also spend time on making online courses, so be sure to check those out!\",\"sameAs\":[\"https:\/\/codingexplained.com\",\"https:\/\/www.facebook.com\/codingexplained\",\"https:\/\/www.linkedin.com\/in\/ba0708\",\"https:\/\/twitter.com\/codingexplained\",\"https:\/\/www.youtube.com\/c\/codingexplained\"],\"url\":\"https:\/\/codingexplained.com\/author\/andy\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Elasticsearch","description":"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch","og_locale":"en_US","og_type":"article","og_title":"Introduction to Elasticsearch","og_description":"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.","og_url":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch","og_site_name":"Coding Explained","article_publisher":"https:\/\/www.facebook.com\/codingexplained","article_author":"https:\/\/www.facebook.com\/codingexplained","article_published_time":"2016-01-02T00:07:25+00:00","article_modified_time":"2017-06-11T17:06:52+00:00","og_image":[{"width":1200,"height":444,"url":"https:\/\/codingexplained.com\/wp-content\/uploads\/2015\/11\/codingexplained-fb-promote.png","type":"image\/png"}],"author":"Bo Andersen","twitter_card":"summary_large_image","twitter_creator":"@codingexplained","twitter_site":"@codingexplained","twitter_misc":{"Written by":"Bo Andersen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch","url":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch","name":"Introduction to Elasticsearch","isPartOf":{"@id":"https:\/\/codingexplained.com\/#website"},"datePublished":"2016-01-02T00:07:25+00:00","dateModified":"2017-06-11T17:06:52+00:00","author":{"@id":"https:\/\/codingexplained.com\/#\/schema\/person\/e19c92ec991f571605f047cefeaa950d"},"description":"This is an overall introduction to Elasticsearch that introduces the search engine and its main characteristics.","breadcrumb":{"@id":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/codingexplained.com\/coding\/elasticsearch\/introduction-to-elasticsearch#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codingexplained.com\/"},{"@type":"ListItem","position":2,"name":"Introduction to Elasticsearch"}]},{"@type":"WebSite","@id":"https:\/\/codingexplained.com\/#website","url":"https:\/\/codingexplained.com\/","name":"Coding Explained","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codingexplained.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/codingexplained.com\/#\/schema\/person\/e19c92ec991f571605f047cefeaa950d","name":"Bo Andersen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codingexplained.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/28f5826f9d5d544b0c5e1ec321dfdfb8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/28f5826f9d5d544b0c5e1ec321dfdfb8?s=96&d=mm&r=g","caption":"Bo Andersen"},"description":"I am a back-end web developer with a passion for open source technologies. I have been a PHP developer for many years, and also have experience with Java and Spring Framework. I currently work full time as a lead developer. Apart from that, I also spend time on making online courses, so be sure to check those out!","sameAs":["https:\/\/codingexplained.com","https:\/\/www.facebook.com\/codingexplained","https:\/\/www.linkedin.com\/in\/ba0708","https:\/\/twitter.com\/codingexplained","https:\/\/www.youtube.com\/c\/codingexplained"],"url":"https:\/\/codingexplained.com\/author\/andy"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3mJkW-zO","_links":{"self":[{"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/posts\/2220"}],"collection":[{"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/comments?post=2220"}],"version-history":[{"count":4,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/posts\/2220\/revisions"}],"predecessor-version":[{"id":2916,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/posts\/2220\/revisions\/2916"}],"wp:attachment":[{"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/media?parent=2220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/categories?post=2220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/tags?post=2220"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/codingexplained.com\/wp-json\/wp\/v2\/series?post=2220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}