
Master Elasticsearch 8 with Java 20 and Spring Boot 3.1.0 by learning core concepts and building robust search and analytics applications.
Explore the seven-section course structure from Java and IntelliJ setup to integrating Spring Boot with Elasticsearch via Spring Data and Elasticsearch Client API; build two Elasticsearch-backed CRUD apps.
Learn to download and install Java on Windows 11, verify the JDK 20 installation, and choose between OpenJDK and Oracle, preparing for the IntelliJ setup in the next lecture.
Download and install the IntelliJ IDEA community edition, set up Java associations and the bin path, then create a Hello world project and run it.
Learn to integrate GitHub with IntelliJ IDEA by creating a Hello World project, enabling version control, installing Git, and committing and pushing changes to a public GitHub repository.
Elasticsearch is a document-oriented search engine that stores, retrieves, and analyzes documents with specialized commands, delivering lightning-fast search via an inverted index built on Lucene.
Learn to download, install, and configure Elasticsearch 8.7.0 and Kibana 8.7.0 on Windows, set up security with the elastic user and enrollment tokens, and use dev tools to manage data.
Explore how Elasticsearch distributes data with shards and replicas across a cluster to speed searches and indexing, and how inverted indexes, segments, and memory buffers power updates.
Learn to create, retrieve, and delete indexes in Elasticsearch 8, using http methods to manage documents and indexes, with Kibana tooling and the _doc default type.
Master the Elasticsearch query context to rank results and build complex searches using match, multi match, bool, range, phrase, and term queries on an employees index.
Master boolean queries and the filter context in Elasticsearch, using term and range queries, compare query and filter contexts, and apply fuzzy search to handle misspellings with faster filtering.
Learn how Elasticsearch aggregations, including metric, bucket, pipeline, and matrix types, summarize data, compute averages and sums, group by department, and analyze salary–age correlations.
Define Elasticsearch employees index with custom mappings and settings, including name, age, salary, is_manager, and higher_date (date with epoch millis), plus shards and replicas, and demonstrate a bool must search.
Explore dynamic mappings in Elasticsearch, where field types come from the first indexed document in a student index, and learn when explicit mappings are needed for control.
Explore built-in and custom analyzers in Elasticsearch, including whitespace, standard, and English analyzers, and learn to define custom analyzers with index settings and the underscore analyze endpoint.
Spring Boot makes it easy to create standalone, production-grade Spring-based applications with minimal configuration, using convention over configuration and an embedded container.
Bootstrap a spring boot app with spring initializer, selecting maven, java, and spring boot 3.0.6, adding spring web. Open in IntelliJ and run to see Tomcat on port 8080.
Discover how Spring Boot auto configuration automatically configures beans from classpath dependencies, such as data sources and template engines, and enable it via the annotation in your main application.
Discover how spring boot starter projects provide dependency management and auto configuration, with a starter parent managing versions and starters like web and test bundling spring mvc and junit.
Create a hello world rest controller in spring boot, using the RestController annotation and a get mapping to return a json response at /hello.
Create a rest controller that returns a Java bean as JSON, by building an employee model with getters, setters, a constructor, and a toString, using response body conversion.
Demonstrates returning a list of Java objects from a spring rest controller by creating a get all employees method, annotating with @GetMapping and @RequestBody to serialize to a JSON array.
Create a Spring Boot application from within IntelliJ IDEA by starting a new Maven archetype quickstart project, configuring the Spring Boot parent and web dependency, and reloading the Maven project.
Build a multi-tier Spring Boot CRUD app by creating an employee model and a controller-service-repository flow with post and get endpoints to create and fetch all employees.
Update an employee via put mapping using id path variable and request body, invoking the employee service update, returning ok with the updated employee or not found.
Delete an employee using http delete with a delete mapping and a path variable. Return no content on success or not found on failure, using stream filtering and removal.
Add an embedded H2 database to a Spring Boot project by declaring the H2 dependency in pom.xml, setting the runtime scope, and configuring spring.datasource.url for an in-memory database named mydb.
Add the spring boot starter data JPA dependency and reload Maven to enable JPA features with h2. Create an employee repository interface extending JPA repository for the entity and id.
Test a CRUD app with Spring Data JPA and the H2 in-memory database using Postman to create, read, update, and delete employees; includes get by id and restart data loss.
Create an executable jar with dependencies by configuring Maven with the compiler and assembly plugins, setting a manifest with a main class and classpath, and packaging the jar with dependencies.
Create a Maven project in IntelliJ with Java 20 and Spring Boot 3.1.0, then add Elasticsearch Java Client and Jackson Databind plus Spring Boot starter web to connect to Elasticsearch.
Configure a spring boot application to connect to elasticsearch over https by building a rest client, configuring credentials and a trust store, and exposing a high level elasticsearch client bean.
Create an employee model and an Elasticsearch repository, annotate the model with Document and index name employee, configure Spring Boot with Elasticsearch, and prepare for CRUD operations.
Inject the employee repository into the service, replace the static list, and implement create, get all, update, and get by id using repository methods save, findAll, findById, and delete.
Implement a Spring Boot createEmployee method for Elasticsearch by wiring repository via a service and exposing a POST API at /api/employees that saves the employee and returns the created object.
Implement a get all employees endpoint with http get, returning an iterable of employees via the service and repository, wrapped in a response entity, and verify with postman.
Implement get employee by id using repository findById, handle optional results, and return 200 with the employee or 404 when not found in a spring boot controller.
Implement an update employee api by finding the employee by id, updating its fields, and saving via the repository. Expose the endpoint with a path variable id and request body.
Implement delete employee method in service and controller using repository delete by ID and return no content response. Test with postman http delete and verify remaining employees.
Learn to implement a custom repository method findByName in a Spring Boot with Elasticsearch project, wiring it through the service and a search endpoint to return employees by name.
Implement pagination in Spring Data by passing a pageable to repository.findAll, returning a page of employees via a service and a page endpoint with page and size.
Implement a salary range filter with Elasticsearch using the between keyword, by adding a repository method and a controller endpoint to return employees within a min and max salary.
Implement a find by name using the @Query annotation to build an Elasticsearch DSL query with a bool must and a name match, wired through repository, service, and controller.
Implement a repository method with @Query that matches name and filters by salary range, then expose a search endpoint to return employees by name and minimum salary.
Implement a salary range search with @Query on the salary field. Expose a /search/range endpoint with min and max salary (45,000–55,000) to return employees within the range.
Create a new project from scratch to build a CRUD app with Elasticsearch using the Elasticsearch Java client, without the Spring Boot starter data Elasticsearch.
Learn to build a product API with Elasticsearch client in Spring Boot, creating model, controller, and service layers, and index a product document using the Elasticsearch client.
Create two APIs to get all products and to get a product by id using the Elasticsearch client, with the products-002 index, via controller and service layers, tested with Postman.
Implement a get product by id API using the Elasticsearch Java client. The flow wires the controller and service to return a product entity from index products 002.
Implement a put mapping in the controller to update a product using Elasticsearch, with index and id. Call the update service with the document and return the updated product.
Implement a delete API with the Elasticsearch Java client in a Spring Boot app, using a delete mapping with id for index products-002, returning 204 no content on success.
Build a get product by category api with the Elasticsearch Java client, using a search on index product-002 with a match query for category to return response entity of products.
Implement a price range filter with the Elasticsearch Java client by adding a range query on the price field and exposing a search by price range endpoint returning products.
Install Docker on Windows via WSL, then pull and run Elasticsearch 8 and Kibana containers, configure a Docker network, adjust map count, and access Kibana at localhost:5601.
Connect a Spring Boot application to an Elasticsearch Docker container via https by configuring trust stores, keystore, and http client settings to create and query an employee index.
Recap the course on Elasticsearch and Spring Boot, highlighting shard and replica architecture, mappings, analyzers, and aggregations. Learn how Spring Data Elasticsearch enables CRUD operations and Kibana for visualization.
The ONLY course that will use the latest version of Elasticsearch Java and Spring Boot!
Do you want to learn how to build powerful and scalable search applications with Elasticsearch and Java? Do you want to master the latest technologies and frameworks such as Elasticsearch 8, Java 20, and Spring Boot 3.1.0? If yes, then this course is for you!
In this course, you will learn everything you need to know about Elasticsearch and Java, from the basics to the advanced features. You will start by learning what Elasticsearch is, how to install it, and use it with Kibana dev tools. You will also learn about the core concepts of Elasticsearch such as shards, replicas, indices, queries, filters, aggregations, mappings, analyzers, and more.
Next, you will learn how to use Spring Boot to create a RESTful web service with Java. You will learn how to use Spring Boot starter projects, dependencies, auto-configuration, controllers, beans, and repositories. You will also learn how to use an embedded database (H2) to test your CRUD API.
Then, you will learn how to integrate Spring Boot with Elasticsearch using two different approaches: Spring Data Elasticsearch and Elasticsearch Client API. Using both methods, you will learn how to create, read, update, and delete documents in Elasticsearch. You will also learn how to perform various search operations such as pagination, range queries, custom queries, and more.
You will also learn the following:-
1. Install Docker:
2. Pull Elasticsearch and Kibana Docker Images:
3. Run Elasticsearch Container:
4. Run Kibana Container:
5. Configure Spring Boot Application with HTTPS:
6. Connect Spring Boot Application to Elasticsearch and Kibana:
By the end of this course, you will have a solid understanding of Elasticsearch and Java and how to use them together to build amazing search applications. You will also have hands-on experience with creating two different CRUD applications using Spring Boot and Elasticsearch.
This course is suitable for anyone who wants to learn about Elasticsearch and Java or improve their existing skills. Before taking this course, you should have some basic Java knowledge.
So what are you waiting for? Enroll now and start your journey to becoming an Elasticsearch and Java expert!