Learning Path: Elasticsearch Integration with PHP & Laravel
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: Elasticsearch Integration with PHP & Laravel to your Wishlist.

Add to Wishlist

Learning Path: Elasticsearch Integration with PHP & Laravel

Perform advanced search and analytics on your web applications using Elasticsearch
New
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3 students enrolled
Created by Packt Publishing
Last updated 9/2017
English
English [Auto-generated]
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 5.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand how to choose the best Elasticsearch cloud topology to deploy and power it up with external plugins
  • Learn cluster, node and its services
  • Understand and explore replication and sharding
  • Get familiar with fundamental concepts of Elasticsearch
  • Learn to read and write queries using the Elasticsearch Query DSL
  • Understand how to use the command line and sense clients to query the Elasticsearch REST API
  • Learn to integrate the open source Elastica PHP library with your PHP application
  • Learn to use the official Laravel Scout package with an Elasticsearch driver
View Curriculum
Requirements
  • Working knowledge of PHP and Laravel is required. Basic JSON knowledge and understanding of Java and related technologies is also required.
Description

Are you a developer who wants to get the most out of Elasticsearch for advanced search and analytics? Or are you a PHP developer and interested in integrating ElasticSearch into your web applications, especially those built using Laravel? If yes, then go for this Learning Path. 

Packt’s Video Learning Path is a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it. 

Elasticsearch is an open-source, broadly-distributable, readily-scalable, and enterprise-grade search engine. Accessible through an extensive and elaborate API, Elasticsearch can power extremely fast searches that support your data discovery applications. Integrating Elasticsearch with PHP/Laravel web application will help you create functional and searchable web applications. Elasticsearch has the following advantages: 

  • Full-text search
  • Schema free
  • Built on top of Lucene
  • Supports cloud 

This Learning Path starts with introducing new features of Elasticsearch 5.x and setting up Elasticsearch on your system. You will learn basic operations of Elasticsearch to perform on your data. You will then see how to create complex queries and analytics, and perform index mapping. Next, you will learn to use Elasticsearch REST API, the Sense tool, and two different Elasticsearch PHP libraries to integrate Elasticsearch with PHP/Laravel application, starting with the PHP libraries and expanding to the Laravel Scout package. Finally, you will learn to create database of information, adding more data types, and performing more advanced queries and data analysis.

By the end of this Learning Path, you will gain skills required to build a functional Elasticsearch integration in your PHP/Laravel web application. 

 About the Authors:

Alberto Paro is an engineer, project manager, and software developer. He currently works as freelance trainer/consultant on big data technologies and NoSQL solutions. He loves to study emerging solutions and applications mainly related to big data processing, NoSQL, natural language processing, and neural networks. He began programming in BASIC on a Sinclair Spectrum when he was eight years old, and to date, has collected a lot of experience using different operating systems, applications, and programming languages. 

Kyle Nicodemus is a graduate of the Rochester Institute of Technology’s B. Thomas Golisano College of Computing and Information Sciences. Kyle has a strong background in Linux System Administration and Cloud Operations. He has worked in environments supporting both large and small scale web applications.

He currently works as a DevOps engineer at Global Thinking in Alexandria, Virginia. In his current role, he is responsible for the design and implementation of the cloud infrastructure behind two large web software products. He also works as a technical architect and backend developer for web applications, including one built using the Laravel framework with a custom Elasticsearch integration.

Who is the target audience?
  • This Learning Path is for PHP developers who wish to integrate Elasticsearch into their web applications.
Compare to Other Laravel Courses
Curriculum For This Course
46 Lectures
05:15:15
+
Elasticsearch 5.x Solutions: Getting Started
26 Lectures 01:43:48

This video gives an overview of the course.

Preview 02:12

Every instance of Elasticsearch is called node. Several nodes are grouped in a cluster. This is the base of the cloud nature of Elasticsearch.

Understanding Cluster, Node and It's Services
05:40

If you'll be using Elasticsearch as a search engine or a distributed data store, it's important to understand concepts on how Elasticsearch stores and manages your data.

Managing Data
02:47

Related to shards management, there are key concepts of replication and cluster status.

Understanding Cluster, Replication, and Sharding
02:38

In Elasticsearch 5.x, there are only two ways to communicate with the server using the HTTP protocol or the native one. In this video, we will take a look at these main protocols.

Communicating with Elasticsearch
03:06

Elasticsearch has an active community and the release cycles arevery fast. Because Elasticsearch depends on many common Java libraries (Lucene, Guice, and Jackson are the most famous ones), the Elasticsearch community tries to keep them updated and fixes bugs that are discoveredin them and in Elasticsearch core.

Downloading and Installing Elasticsearch
04:49

Correctly setting up networking is very important for your nodes and cluster. There are a lot of different installation scenarios and networking issues: the first step for configuring the nodes to build a cluster is to correctly set the node discovery.

Setting Up Networking
03:32

Elasticsearch allows customizing several parameters in an installation. In this recipe, we'll see the most used ones to define where to store our data and to improve the overall performances.

Setting Up a Node
01:21

Elasticsearch is natively designed for the cloud, so when you need to release a production environment with a huge number of records and you need high availability and good performances, you need to aggregate more nodes in a cluster.

Setting Up Different Node Types
04:08

One of the main features of Elasticsearch is the possibility to extend it with plugins. Plugins extend Elasticsearch features and functionalities in several ways. In Elasticsearch 5.x, the plugins are native plugins–they are jars files that contain application code.

Installing and Removing Plugins
04:14

Standard logging settings work very well for general usage. Changing the log level can be useful to check for bugs or understanding malfunctions due to bad configuration or strange plugin behaviors. A verbose log can be used from the Elasticsearch community to cover problems.

Changing Logging Settings
01:35

Docker is a container system that allows to easily deploy replicable installations of server applications. With Docker, you don't need to set up a host, configure it, download the Elasticsearch server, unzip it, or start the server–everything is done automatically by Docker.

Setting Up a Node Via Docker
03:05

Mapping is a very important concept in Elasticsearch, as it defines how the search engine should process a document. Let’s try and understand mapping by considering index as a database in the SQL world.

Using Explicit Mapping Creation
04:27

Using explicit mapping allows to be faster in starting to insert the data using a schemaless approach without being concerned of the field types. Let’s take a look at mapping base types, arrays, and object in this video.

Mapping is a very important concept in Elasticsearch, as it defines how the sear
03:20

The document is also referred as the root object. It has special parameters to control its behavior, mainly used internally to do special processing, such as routing or time-to-live of documents. This video will guide us with special field and dynamic template.

Mapping a Document and Using Dynamic Templates
03:48

There is a special type of embedded object, the nested one. Elasticsearch also allows defining child documents. Often a field must be processed with several core types or in different ways. Let’s explore nested objects, child document and multiple mapping.

Managing Nested Objects, Child Document, and Multiple Mapping
04:58

Elasticsearch natively supports the use of geolocation types: special types that allow localizing your document in geographic coordinates (latitude and longitude) around the world. There are two main types used in geographic world: the point and the shape.

Mapping GeoPoint Field and GeoShape Field
03:15

Elasticsearch is used in a lot of systems to collect and search logs such as Kibana and LogStash. It also allows extending its core types to cover new requirements with native plugins that provide new mapping types.

Mapping IP Field and Attachment Field
03:24

Sometimes when we are working with our mapping, it is required to store some additional data to be used for display purposes, ORM facilities, permissions, or simply to track them in the mapping. We’ll also have to see several analyzers and how to use them to improve the indexing and searching quality.

Adding Metadata, Specifying Analyzer and Mapping Completion Field
05:09

The first operation to do before starting indexing data in Elasticsearch is to create an index–the main container of our data. Let’s also see the counterpart of creating an index is deleting one.

Creating, Deleting, and Opening/Closing an Index
05:12

You learned how to build mapping by indexing documents. This video shows how to put a type mapping in an index. This kind of operation can be considered as the Elasticsearch version of an SQL-created table.

Putting and Getting a Mapping
03:17

There are a lot of common scenarios that involve changing your mapping. Due to limitations in Elasticsearch mapping, that is, it cannot delete a defined one, you often need to reindex index data. Let’s take a look at reindexing and refreshing in detail.

Reindexing, Refreshing, and Flushing
05:31

The Elasticsearch core is based on Lucene, which stores the data in segments on disk. During the life of an index, a lot of segments are created and changed. With the increase of segment number, the speed of search is decreased due to the time required to read all of them.

Force Merge and Shrinking an Index
06:51

Elasticsearch natively supports the use of geolocation types: special types that allow localizing your document in geographic coordinates (latitude and longitude) around the world. There are two main types used in geographic world: the point and the shape.

Managing Index Settings and Using Index Aliases
06:10

In Elasticsearch, there are two vital operations: index and search. Indexing means storing one or more documents in an index: a similar concept of inserting records in a relational database. After having indexed a document, during application life it must be retrieved. Let’s explore how we do that.

Indexing and Getting a Document
04:57

Deleting documents in Elasticsearch is possible in two ways: using the DELETE call or the delete_by_query call. Also, Documents stored in Elasticsearch can be updated during their lives. There are two available solutions to do this operation in Elasticsearch: adding a new document or using the update call.

Deleting and Updating a Document
04:22
+
Integrating Elasticsearch with PHP and Laravel
20 Lectures 03:31:27

This video provides an overview of the entire course.

Preview 08:15

In this video, we will install and configure Laravel Homestead. In order to use Homestead, we will also need to install the required dependencies and configurations on our machine.

Setting up Laravel Homestead
08:46

In this video, we will install Elasticsearch on our Homestead development machine, and development tools to access the Elasticsearch server. Finally, we will configure the server to use in our project.

Install and Configure Elasticsearch
09:11

In this video, we will create our new Laravel project and install all the required packages we will use in future videos.
Installing Laravel and Required Packages
06:19

In this video, we will go over some basic Elasticsearch concepts. We will cover some simple topics to provide a base for learning throughout the section.

Basic Elasticsearch Concepts
09:08

In this video, you will learn to interact with our Elasticsearch server via the REST API using curl on the command line.
Manipulating Elasticsearch via the Command Line
16:38

In this video, we will expand on our Elasticsearch knowledge to cover a few more advanced Elasticsearch concepts. This will give us a better idea of how Elasticsearch data is stored and how our queries will be executed.

Intermediate Elasticsearch Concepts
07:39

In this video, we will explore the Elasticsearch Query DSL. This will involve looking at and exploring JSON for simple and advancedElasticsearch queries, and figuring out why they operate the way they do.

Elasticsearch Query DSL
13:48

In this video, we will configure the Elasticsearch PHP Client and the Elastica client that we installed in our setup. We will connect the clients to our Elastica server and make sure everything in our PHP code is functional.

Configuring the Elasticsearch PHP Client
09:53

In this video, we will configure the Elastica PHP Client and connect the client to our Elasticsearch server and make sure everything in our PHP code is functional. We willcompare the operation of the  Elastica client to the Elasticsearch PHP client.

Configuring the Elastica Client
07:15

In this video will learn how to use the Elasticsearch PHP client to manage our Elasticsearch data structures. We will learn how to create a new type by defining its mappings, and we will add a single document  to that type before bulk indexing some generated sample data.

Setting up Data Structures in Elasticsearch PHP
13:38

In this video we will learn how to use the Elastica client to manage our Elasticsearch data structures. We will learn how to create a new type by defining its mappings, and we will add a single document to that type before bulk indexing some generated sample data. We will compare the operation to the Elasticsearch PHP client.

Setting up Data Structures in Elastica
08:36

In this section we will write some code to perform simple queries using the Elasticsearch PHP client. We will write queries against the sample data we inserted. We will examine the results we get back from the server to see how the Elasticsearch PHP client operates.

Performing Simple Queries with Elasticsearch PHP
09:37

In this section we will write some code to perform simple queries using the Elastica client. We will write queries against the sample data we inserted in the last section. In doing so we will compare and contrast the operation of Elastica and the Elasticsearch PHP client.

Performing Simple Queries with Elastica
10:21

In this section we will write some advanced queries with the Elasticsearch PHP client. We will programmatically build some queries,as well as execute some aggregations in order to analyze the data stored in Elasticsearch.

Performing Advanced Queries with Elasticsearch PHP
12:27

In this section we will write some advanced queries with the Elastica client. We’ll programmatically build some queries, as well as execute some aggregations in order to analyze the data stored in Elasticsearch. We’ll further see how Elastica differs from the Elasticsearch PHP client.

Performing Advanced Queries with Elastica
10:46

In this video we will choose an open source driver to integrate Laravel Scout with our Elasticsearch server. We will install and configure the driver, getting our environment set up and ready to integrate Elasticsearch with Laravel models.

Configuring Laravel Scout and Choosing a Driver
06:57

In this video we will create a new model for use with Laravel Scout. We will write the code to create the model, as well as the required database migrations to set up the MySQL table and a seeder to seed the table with sample data that will also be indexed in Elasticsearch.

Configuring Our Models
14:55

In this video we will set up some routes that will be used to receive search terms from our view and display the results. We will then write code to perform different types of searches on our data indexed in Elasticsearch using functionality provided by Laravel Scout.

Building a Simple Search Page
11:39

In this video we will examine the underlying code for the Laravel Scout driver that we used to integrate Elasticsearch into our Laravel application. We will see how queries are built, data is return, and how data is synchronized between MySQL and Elasticsearch.

Building an Advanced Search Page
15:39
About the Instructor
Packt Publishing
3.9 Average rating
8,229 Reviews
58,964 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.