Learning Elasticsearch 7.x
eBook - ePub

Learning Elasticsearch 7.x

Index, Analyze, Search and Aggregate Your Data Using Elasticsearch (English Edition)

Anurag Srivastava

  1. English
  2. ePUB (handyfreundlich)
  3. Über iOS und Android verfügbar
eBook - ePub

Learning Elasticsearch 7.x

Index, Analyze, Search and Aggregate Your Data Using Elasticsearch (English Edition)

Anurag Srivastava

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Based on NIELIT 'O' Level Revised Syllabus for the Year 2020 for Module 1 (M1-R5)
??????? 1 (M1-R5) ???? 2020 ?? ??? NIELIT 'O' ???? ?????? ?? ?????? Key Features

  • Set of review questions with answers are added at the end of each chapter.?????? ?? ??? ????? ?? ??? ???????? ?????? ?? ??? ??? ???? ??? ??|.
  • Sample papers are also included to enable the readers to know the questions likely to be asked in the examination.??????? ??? ???? ???? ???? ???????? ?? ??? ?????? ?? ????? ???? ?? ??? ??????? ?? ????????? ???? ?? ??? ?? ????? ???

  • Description
    Book covers the entire syllabus for Module -1, IT TOOLS and Network Basics, in a clear and straightforward style. It describes the detailed explanations of computers; Windows Operating systems. MS office; Libre office in an easy-to-understand language. ?????? ?????? ?? ??? ???? ???, ??????? 1, ???? ??? ?? ??????? ??????? ?? ???? ????????? ?? ??? ???? ??? ?????? ????????, ?????? ???????? ??????, ???? ????, ?????? ???? ?? ?????? ???? ??? Detailed explanations of Social Networking and e-Governance Services will help the reader to develop the communication through social media sites. ???? ?????????? ?? ?-???????? ?????? ?? ??????? ???????? ???? ?? ????? ?? ?????? ???? ??? ??? ????? ? Digital Financial Tools and Applications; Future Skills & Cyber Security will enable you to understand the various financial services, latest trends and technologies in upcoming fields in IECT. ?????? ??????? ????? ?? ?????????, ?????? ??????? ?? ????? ?????????? ????? ??? ?? ??????? ??????? ??????, ?????? ??????? ?? IECT ??? ????? ????????? ??? ??????? ?? ????? ??? ????? ???? What will you learn
  • Computer, Operating System, Internet, WWW and Web????????, ???????? ??????, ???????, ????????????????????? ?? ???
  • Email, Social Networking and e-Governance Services???????, ????, ???? ?????????? ?? ?-????????

  • Who this book is for
    Book aims at imparting a basic level of IT literacy to computer novices and will help them to learn the practical applications of the concepts.?????? ?? ???????? ???????? ????????? ?? ???? ???????? ?? ?? ???????? ???? ?????? ???? ?? ?? ?????? ????????? ?? ?????????? ??????????? ?? ????? ??? ??? ??????.br/>
    Table of Contents
    Introduction to Computer (???????? ?? ?????)
    Operating System Windows (???????? ??????: ??????)
    Ubuntu/Edubuntu ( ??????? / ?????????)
    MS-Word (?? –????)
    LibreOffice Writer (?????? ???? ?????)
    MS-Excel (?? -??????)
    LibreOffice Calc (?????? ???? ????)
    MS-PowerPoint (?? - ?????????)
    LibreOffice Impress(?????? ???? ????????)
    Internet, WWW and Web (???????, ??????? ??????? ??????? ?? ???)
    Email, Social Networking & e-Governance Services (????, ???? ?????????? ?? ?-???????? ??????)
    Digital Financial Tools and Applications (?????? ??????? ????? ?? ?????????)
    Futuristic IT Technology and Cyber Security (???????????? ???? ???????????? ?? ????? ??????? )
    About the Authors
    Prof. Satish Jain has obtained B.Sc. degree from Agra University in First Division and is a gold medal winner. He obtained B.E. (Electronics) degree from Indian Institute of Science (I.I.Sc.), Bangalore with Distinction. He joined Indian Airforce as a Signal officer and held different technical appointments during 21 years of service. He was specially selected by the IAF to undergo Masters of Engineering course in Aerospace science at I.I.Sc., Bangalore and M.Tech in Computer Science Engineering at IIT Kanpur. After taking retirement from the IAF, he set up Computer Science Department in different organisations and educational institutes.. ????. ???? ??? ?? ???? ????????????? ?? ????? ?????? ??? ??.????. ?? ?????? ?? ?? ?? ?? ?????? ??? ?????? ?? ? ???????? ??.?. (??????????????) ?????? ??????????? ?? ????? (??. ??. ?? ??.), ??????? ?? ?? ?? ? ?? ?????? ??????? ?? ??? ??? ?????? ???????? ??? ????? ??? ?? 21 ?????? ?? ???? ?? ????? ??????? ?????? ??????????? ???? ??????, ??????? ??? ???????? ????????? ????? ??? ???????? ?? ??????????? ????? ???? ?? ??? IAF ?????? ????? ??? ?? ??? ??? ?? ?? ?????? ?????? ??? ???????? ????? ?? ?? ??? ?? ??? ?????? ???????? ?? ???????????? ???? ?? ???, ???????? ??????? ??????? ?? ???????? ????????? ??? ???????? ??????? ????? ?? ??????? ?? ?? ?.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Learning Elasticsearch 7.x als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Learning Elasticsearch 7.x von Anurag Srivastava im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatica & Data mining. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2020
ISBN
9789389898309

CHAPTER 1

Getting Started with Elasticsearch

Introduction

This chapter provides an introduction to Elasticsearch, and we will start with the benefit of using Elasticsearch. We will then explain what Elasticsearch is, and you will get to know more about Elasticsearch and how it is built on top of Lucene is. After an introduction to Elasticsearch, we will cover its basic concepts by explaining the node, cluster, documents, index, and shards. Then, we will discuss the use cases of Elasticsearch like data search, data logging and analysis, application performance monitoring, system performance monitoring, data visualization, and so on. We will also cover various Elasticsearch clients that can be used with different languages like Java, PHP, Perl, Python, .NET, JavaScript, and such. At last, we will discuss how to use Elasticsearch as a primary data source, secondary data source, and as a standalone system.

Structure

In this chapter, we will discuss the following topics:
  • What is Elasticsearch?
  • The basic concepts of Elasticsearch
  • Use cases of Elasticsearch
  • Different clients for Elasticsearch
  • How to use Elasticsearch

Objectives

After studying this unit, you should be able to:
  • Understand the concepts of Elasticsearch
  • Know how to use different Elasticsearch clients

Introduction to Elasticsearch

Elasticsearch exists to meet the need for a search mechanism to search the relevant data from a data store. However, before we jump to Elasticsearch, we should understand why search is so important. We are living in an information age where data is growing at an exponential rate due to digitization. There are several new data sources, such as smartwatches, smart devices, IoT sensors, online transactions, and many others, that generate data. This data can be structured or unstructured, it can be device-specific, or it can be time-series data. Data can be from different sources, and it can be of different types, so the first challenge is to streamline it by converting unstructured data into a structured form.
Ideally, these are the challenges we will face during data storage, but what would happen once the data is stored? If you want to find specific details in a hige dataset, it is going to be a challenging task without a search engine. Until some years ago, we were using RDBMS for all-purpose data storage, and the search operation was performed on the same RDBMS. Text search on the RDBMS system is a very difficult task, as we must write a complex SQL query that takes a lot of time even after applying all required indexes. Also, there are several other drawbacks like search relevancy, data aggregation, and so on, which exist in a search engine like Elasticsearch but not in an RDBMS system.
Search is important as we want to find exactly what we are looking for. For example, I want the topic of my interest from a blog site, so it must have a search mechanism to provide me the desired results quickly. Similarly, we need a quick search to get the desired products during online shopping sessions. It is very important to provide a quick search response with relevancy; otherwise, users will not use the application.
The search also has other aspects that we must consider:
  • When I start searching, I should not have to type the complete word; the application should suggest the words as soon as I start typing.
  • If I type the word wrong, the application should still suggest the products by applying the fuzzy data search.
  • It should provide the feature of derivative search, where I can type the text, and it should match with any derivative of the text. For example, if I search for mobile, it should search for mobiles, phone/s, and such.
  • It should support data aggregation so that we can show the user additional options with the search results. For example, if I search for mobile, it should provide me with filters like price range, ratings, brands, and so on, along with the count of the product in that range.
  • It should provide relevant results; for example, if I am searching for a mobile phone, the application should first suggest the mobile phone and then its accessories, such as chargers, covers, headphones, and so on.
  • It should be able to provide additional filters when I search for anything. For example, if I want a full HD screen resolution, 12 GB of RAM, and a specific color in my mobile search, the application should provide me with the results based on my filter.
  • It should provide the search results within seconds so that users can get their products as soon as they hit the search button. If the search is taking minutes, we will lose the battle.
These are some of the core features of a search application that cannot be built using an RDBMS system. This system is good for data storage, but we should use alternate solutions along with the RDBMS for data search. Now that we have discussed the features that a search application should provide, let’s discuss Elasticsearch. In the next section, we will see what Elasticsearch is and how it will solve these search-related issues.

What is Elasticsearch

Elasticsearch is an open-source search engine written in Java and built on top of Lucene. Lucene is a fast and high-performance search engine library that empowers the searching of Elasticsearch. We index the data to get the search results quickly, and the index can be of different types. Lucene uses an inverted index, wherein data structure is created to keep a list of each word. Now, you must be thinking why we should use Elasticsearch if Lucene provides everything. The answer is that Lucene is not easy to use directly because we need to write Java code to use it. Also, it is not distributed in nature, so it is not easy to expand it on multiple nodes. Elasticsearch uses the search feature of Lucene plus other extensions, which makes it the most famous search engine of the current time. It encapsulates the complexities of Lucene and provides REST APIs, using which we can easily interact with Elasticsearch. It also provides support for different programming languages through the language client, so we can code in any specific language and interact with Elasticsearch. We can also use the console to interact with Elasticsearch using CURL.
Elasticsearch was created by a company Elastic founded by Shay Banon, who has created it on top of Lucene. To summarize, Elasticsearch is an open-source, distributed, scalable, REST-based, document-oriented search engine built on top of Lucene. An Elasticsearch cluster can be run on a single server or hundreds of servers and can handle petabytes of data without any issue.

The basic concepts of Elasticsearch

It is important to understand a few terms that are used with Elasticsearch, such as cluster, node, index, document, and shards. We talk about these terminologies several times, so it is necessary to discuss them in brief here. We will discuss them in detail later.

Node

A node is a single running instance of Elasticsearch. Let’s say we have an Elasticsearch cluster running on ten different servers; then, each server is known as a node. If we are not running the Elasticsearch on a production environment, we can run a single node cluster of Elasticsearch for some use cases, and we can call such nodes as a single node cluster of Elasticsearch. If the data size increases, we need more than one node to scale horizontally, which also provides fault tolerance to the solution. A node can transfer the client request to the appropriate node, as each node knows about the other ones in the cluster. Nodes can be of different types, which we will look at in the further sub-sections.

Master node

The master node is used for supervision as it tracks which node is part of the cluster or which shards to allocate to which nodes. The master node is important to maintain a healthy cluster of Elasticsearch. We can configure a master node by changing a node’s node.master option as true in the Elasticsearch configuration file. If we want to create a dedicated master node, we must set other types as false in the configuration. Take a look at the following code:
node.master: true
node.voting_only: false
node.data: false
node.ingest: false
node.ml: false
xpack.ml.enabled: true
cluster.remote.connect: false
Here, you can see the voting_only option; if we set it false, the node will work as the master eligible node and can be picked as a master node. However, if we set the voting_only option as true, the node can participate in master node selection but cannot become a master node by itself. I will explain how master node selection works later.

Data node

Data nodes are responsible for storing data and performing CRUD operations on it. It also performs data search and aggregations. We can configure a data node by changing a node’s node.data option to true in the Elasticsearch configuration file. If we want to create a dedicated data node, we must set other types as false in the configuration. Refer to the following code:
node.master: false
node.voting_only: false
node.data: true
node.ingest: false
node.ml: false
cluster.remote.connect: false
Here, we are setting the node.data to true and all other options to false.

Ingest node

Ingest nodes are used to enrich and transform data before indexing it. So, they create an ingest pipeline using which data is transformed before indexing. We can configure an ingest node by changing a node’s node.ingest option to true in the Elasticsearch configuration file. Any node can work as an ingest node, but if we have heavy data that we want to ingest, it is recommended to use a dedicated ingest node. To create a dedicated ingest node, we must set other types as false in the configuration. Refer to the following code:
node.master: false
node.voting_only: false
node.data: false
node.ingest: true
node.ml: false
cluster.remote.connect: false
Here, we are setting the node.ingest to true and all other options to false.

Machine learning node

Elastic machine learning is not freely available, so if xpack.ml.enabled is set to true, we can create a machine learning node by changing the node.ml option to true. If we want to run machine learning jobs, we must change at least one node in the cluster as a machine learning node. To create a dedicated machine learning node, we must set other types as false in the configuration. Here’s the code:
node.master: false
node.voting_only: false
node.data: false
node.ingest: false
node.ml: true
xpack.ml.enabled: true
cluster.remote.connect: false
So, we can change the node type to any of the preceding options, but a node has all the types by default.

Cluster

An Elasticsearch cluster consists of a set of one or many Elasticsearch nodes that wo...

Inhaltsverzeichnis

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. About the Author
  6. About the Reviewer
  7. Acknowledgement
  8. Preface
  9. Errata
  10. Table of Contents
  11. 1. Getting Started with Elasticsearch
  12. 2. Installing Elasticsearch
  13. 3. Working with Elastic Stack
  14. 4. Preparing Your Data
  15. 5. Importing Data into Elasticsearch
  16. 6. Managing Your Index
  17. 7. Applying Search on Your Data
  18. 8. Handling Geo with Elasticsearch
  19. 9. Aggregating Your Data
  20. 10. Improving the Performance
  21. 11. Administering Elasticsearch
  22. Index
Zitierstile für Learning Elasticsearch 7.x

APA 6 Citation

Srivastava, A. (2021). Learning Elasticsearch 7.x ([edition unavailable]). BPB Publications. Retrieved from https://www.perlego.com/book/2089895/learning-elasticsearch-7x-index-analyze-search-and-aggregate-your-data-using-elasticsearch-english-edition-pdf (Original work published 2021)

Chicago Citation

Srivastava, Anurag. (2021) 2021. Learning Elasticsearch 7.x. [Edition unavailable]. BPB Publications. https://www.perlego.com/book/2089895/learning-elasticsearch-7x-index-analyze-search-and-aggregate-your-data-using-elasticsearch-english-edition-pdf.

Harvard Citation

Srivastava, A. (2021) Learning Elasticsearch 7.x. [edition unavailable]. BPB Publications. Available at: https://www.perlego.com/book/2089895/learning-elasticsearch-7x-index-analyze-search-and-aggregate-your-data-using-elasticsearch-english-edition-pdf (Accessed: 15 October 2022).

MLA 7 Citation

Srivastava, Anurag. Learning Elasticsearch 7.x. [edition unavailable]. BPB Publications, 2021. Web. 15 Oct. 2022.