Building a Google-style search engine from scratch in Java & Spring Boot: crawling, indexing, ranking and query serving