{"id":3335,"date":"2018-03-12T05:43:35","date_gmt":"2018-03-12T00:13:35","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=3335"},"modified":"2021-01-08T11:57:09","modified_gmt":"2021-01-08T06:27:09","slug":"elasticsearch-with-django-part-2","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/","title":{"rendered":"Elasticsearch Engine Integration with Django: How Elasticsearch Works &#8211; Part 2"},"content":{"rendered":"\n<p>In the <a href=\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-1\">previous article<\/a>, we have seen that how to download Elasticsearch in our machine and get working. Now, let&#8217;s discuss how Elasticsearch actually works. Instead of directly jump on integration with Django, let&#8217;s first understand data is manipulated in Elasticsearch engine. So in this article, we will see how Elasticsearch engine creates records and all other related stuff.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Elasticsearch Works?<\/h2>\n\n\n\n<p>Elasticsearch provides a RESTful API that you can interact within a variety of ways. This basically is a type of interface that describes the way a client and server interact. If a server is said to be &#8220;RESTful&#8221;, it provides a way to interact through common HTTP methods (GET, POST, PUT, DELETE), and does not maintain state information. Each request is independent and resources are returned in common text formats like JSON.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Elasticsearch interaction, you specify the operation you are using to determine what kind of action to perform on the data that follows. To retrieve information, you may use a GET command. To create or update records, you can use a PUT or POST command.<\/p><\/blockquote>\n\n\n\n<p><b>CRUD Methods.<\/b><\/p>\n\n\n\n<p>Elasticsearch provides API access that can perform all (POST, GET, PUT, and DELETE) of these functions. We will discuss Elasticsearch in terms of how to do these types of operations.<\/p>\n\n\n\n<p>For ease of explanation, we will use <i><code>curl<\/code><\/i> to demonstrate Elasticsearch using terminal session. If you have not installed curl then use <i><code>sudo apt-get install curl<\/code><\/i>,<\/p>\n\n\n\n<p><b>Create Content.<\/b><\/p>\n\n\n\n<p>Data creation in Elasticsearch is usually referred to as indexing. This is simply the process of adding data to the store and deciding on categories. We can create objects in Elasticsearch using the HTTP methods PUT or POST. Turn on the Elastic server first.<\/p>\n\n\n\n<p>Open the terminal and follow below command:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XPUT \"http:\/\/localhost:9200\/first_index\/car\/1\/_create\" -d '<br>\n{<br>\n\"manufacturer\":\"BMW\",<br>\n\"model\":\"M3\"<br>\n}'<\/code><\/p><\/blockquote>\n\n\n\n<p>In this command, first_index is <b>index<\/b>, car is a <b>type<\/b>, 1 is <b>object_id<\/b> and <b>_create<\/b> is telling that we want to create a new record because PUT command can be used to update information as well.<\/p>\n\n\n\n<p>The index can be thought of as a database. It is the top-level organizational unit that can separate some information from others. The <b>-d<\/b> flag, you pass in the object that you would like to store. This is a JSON-like object with a flexible format.<\/p>\n\n\n\n<p>You should receive a <b>response<\/b> back indicating that the operation was successful:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":1,\"_version\":1,\"result\":\"created\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0},\"created\":true}<\/code><\/p><\/blockquote>\n\n\n\n<p>The id can be specified if you are creating it using a PUT command, or left off to be auto-generated if you choose to use a POST command.<\/p>\n\n\n\n<p>If you are creating the object using POST then a command is:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XPOST \"http:\/\/localhost:9200\/first_index\/car\" -d '<br>\n{<br>\n\"manufacturer\":\"Audi\",<br>\n\"model\":\"TT\"<br>\n}'<\/code><\/p><\/blockquote>\n\n\n\n<p>The <b>response<\/b> should be like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":\"AWHReHpeR_zLEbMGbfpH\",\"_version\":1,\"result\":\"created\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0},\"created\":true}<\/code><\/p><\/blockquote>\n\n\n\n<p>It means in POST request id can be default generated. So the benefit of use PUT request is you can get data easily using id.<\/p>\n\n\n\n<p><b>Read Content.<\/b><\/p>\n\n\n\n<p>We will use GET method to read content.<\/p>\n\n\n\n<p>The most basic way to retrieve data is by specifying the exact object by the index, type, and id:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XGET \"http:\/\/localhost:9200\/first_index\/car\/1\"<\/code><\/p><\/blockquote>\n\n\n\n<p>This will return the information about the document that we received when we were creating the object. Appended onto this output is a key called <i><code>_source<\/code><\/i> that contains the document itself as its value:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":\"1\",\"_version\":1,\"found\":true,\"_source\":{\"manufacturer\":\"BMW\",\"model\":\"M3\"}}<\/code><\/p><\/blockquote>\n\n\n\n<p>For our purposes, we probably want the output more human-friendly, we can append <i><code>?pretty<\/code><\/i>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XGET \"http:\/\/localhost:9200\/first_index\/car\/1?pretty\"<\/code><\/p><\/blockquote>\n\n\n\n<p>Output like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{<br>\n\"_index\" : \"first_index\",<br>\n\"_type\" : \"car\",<br>\n\"_id\" : \"1\",<br>\n\"_version\" : 1,<br>\n\"found\" : true,<br>\n\"_source\" : {<br>\n\"manufacturer\" : \"BMW\",<br>\n\"model\" : \"M3\"<br>\n}<br>\n}<\/code><\/p><\/blockquote>\n\n\n\n<p>If we will only want the document itself to be returned. We can do this by appending \/<b><code>_source<\/code><\/b>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XGET \"http:\/\/localhost:9200\/first_index\/car\/1\/_source?pretty\"<\/code><\/p><\/blockquote>\n\n\n\n<p>We get the only document:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{<br>\n\"manufacturer\" : \"BMW\",<br>\n\"model\" : \"M3\"<br>\n}<\/code><\/p><\/blockquote>\n\n\n\n<p><b>Update Content.<\/b><\/p>\n\n\n\n<p>We can easily update content by using the HTTP POST command. The other option is to just use a PUT command and basically &#8220;re-create&#8221; the object with a replacement (updated) object.<\/p>\n\n\n\n<p>We can update a data object using the POST command and appending <i><code>\/_update<\/code><\/i> to the URI.<\/p>\n\n\n\n<p>We can update the object by a passing <b>script<\/b> and <b>params<\/b> Like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XPOST \"http:\/\/localhost:9200\/first_index\/car\/1\/_update\" -d '{ \"script\": \"ctx._source\", \"params\": { \"manufacturer\":\"Porsche\", \"model\":\"911\"} }'<\/code><\/p><\/blockquote>\n\n\n\n<p>But, I recommend you to use this command:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XPOST \"http:\/\/localhost:9200\/first_index\/car\/1\/_update\" -d '{\"doc\":{\"manufacturer\":\"Porsche\",\"model\":\"911\"}}<\/code><\/p><\/blockquote>\n\n\n\n<p>A response should be like:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":\"1\",\"_version\":3,\"result\":\"updated\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0}}<\/code><\/p><\/blockquote>\n\n\n\n<p>Now, we can find the document again:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XGET \"http:\/\/localhost:9200\/first_index\/car\/1\/_source\"<\/code><\/p><\/blockquote>\n\n\n\n<p>A response will be:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"manufacturer\":\"Porsche\",\"model\":\"911\"}<\/code><\/p><\/blockquote>\n\n\n\n<p><b>Delete Content.<\/b><\/p>\n\n\n\n<p>The delete operation in Elasticsearch is straightforward. It simply deletes a document with the matching ID. We will use DELETE command.<\/p>\n\n\n\n<p>For instance, to delete a document with the ID of 2:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>curl -XDELETE \"http:\/\/localhost:9200\/first_index\/car\/2\"<\/code><\/p><\/blockquote>\n\n\n\n<p>A response will be:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"found\":true,\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":\"2\",\"_version\":3,\"result\":\"deleted\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0}}<\/code><\/p><\/blockquote>\n\n\n\n<p>If we have no ID with id=7 and we run the command with appending \/7 to it. We get:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>{\"found\":false,\"_index\":\"first_index\",\"_type\":\"car\",\"_id\":\"67\",\"_version\":1,\"result\":\"not_found\",\"_shards\":{\"total\":2,\"successful\":1,\"failed\":0}}<\/code><\/p><\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion.<\/h3>\n\n\n\n<p>ElasticSearch is a flexible solution that can index text objects easily and dynamically. If you can programmatically index content, then this solution is almost boundless in terms of its ability to generate search results that your applications or users can utilize.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/django-development\" target=\"_blank\" rel=\"noopener noreferrer\">Click here for more blogs&#8230;<\/a><\/h3>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>At <a href=\"https:\/\/www.botreetechnologies.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">BoTree Technologies<\/a>, we build enterprise applications with our Django team of 20+ engineers.<\/p>\n\n\n\n<p>We also specialize in RPA, AI, Python, Ruby on Rails, JavaScript and ReactJS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\" target=\"_blank\" rel=\"noopener noreferrer\">Consulting is free<\/a> &#8211; let us help you grow!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>In the previous article, we have seen that how to&#8230;<\/p>\n","protected":false},"author":28,"featured_media":13036,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68,10],"tags":[],"class_list":["post-3335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-django","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2<\/title>\n<meta name=\"description\" content=\"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2\" \/>\n<meta property=\"og:description\" content=\"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-12T00:13:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-08T06:27:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"682\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daxita Rajput\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daxita Rajput\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\"},\"author\":{\"name\":\"Daxita Rajput\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a\"},\"headline\":\"Elasticsearch Engine Integration with Django: How Elasticsearch Works &#8211; Part 2\",\"datePublished\":\"2018-03-12T00:13:35+00:00\",\"dateModified\":\"2021-01-08T06:27:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\"},\"wordCount\":780,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg\",\"articleSection\":[\"Django\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\",\"name\":\"Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg\",\"datePublished\":\"2018-03-12T00:13:35+00:00\",\"dateModified\":\"2021-01-08T06:27:09+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a\"},\"description\":\"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg\",\"width\":1024,\"height\":682,\"caption\":\"Elasticsearch with Django\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Elasticsearch Engine Integration with Django: How Elasticsearch Works &#8211; Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a\",\"name\":\"Daxita Rajput\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png\",\"caption\":\"Daxita Rajput\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2","description":"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.","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:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2","og_description":"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.","og_url":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2018-03-12T00:13:35+00:00","article_modified_time":"2021-01-08T06:27:09+00:00","og_image":[{"width":1024,"height":682,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg","type":"image\/jpeg"}],"author":"Daxita Rajput","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Daxita Rajput","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/"},"author":{"name":"Daxita Rajput","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a"},"headline":"Elasticsearch Engine Integration with Django: How Elasticsearch Works &#8211; Part 2","datePublished":"2018-03-12T00:13:35+00:00","dateModified":"2021-01-08T06:27:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/"},"wordCount":780,"commentCount":0,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg","articleSection":["Django","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/","url":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/","name":"Elasticsearch Engine Integration with Django: How Elasticsearch Works - Part 2","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg","datePublished":"2018-03-12T00:13:35+00:00","dateModified":"2021-01-08T06:27:09+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a"},"description":"Part 2 of Elasticsearch integration with Django talks about understanding data manipulation with Elasticsearch engine. Read here to know how to create records with Elasticsearch.","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/07\/elasticsearch-with-django\u200a.jpg","width":1024,"height":682,"caption":"Elasticsearch with Django"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/elasticsearch-with-django-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Elasticsearch Engine Integration with Django: How Elasticsearch Works &#8211; Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/55b2e79e47f75ea4a246499a663a676a","name":"Daxita Rajput","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/daxita-rajput-150x150.png","caption":"Daxita Rajput"}}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=3335"}],"version-history":[{"count":2,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3335\/revisions"}],"predecessor-version":[{"id":14876,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3335\/revisions\/14876"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/13036"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=3335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=3335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=3335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}