We’ve designed this 2-week course to introduce the fundamentals of search to engineers, data scientists, and other technical professionals who are new to the area or interested in working in it. We will cover the basics of indexing, querying, hand-tuned ranking, aggregations, and search user interfaces. To gain practical experience, you will build an application using OpenSearch (an open fork of Elasticsearch) and a public ecommerce dataset. This course will also prepare you for the Search with Machine Learning course that assumes familiarity with search fundamentals as a prerequisite.
Former CTO at Wikimedia
Grant is a CTO, independent consultant and advisor. He is the former CTO of the Wikimedia Foundation and the co-founder and ex-CTO of Lucidworks, co-author of Taming Text, co-founder of Apache Mahout and a long-standing committer on the Apache Lucene and Solr open source projects. Grant’s experience includes managing a large team of engineers, researchers and data scientists at a top ten website as well as engineering a variety of search, question answering, and natural language processing applications for a variety of domains and languages. He earned his B.S. from Amherst College in Math and Computer Science and his M.S. in Computer Science from Syracuse University.
Machine Learning Consultant
Daniel is an independent consultant specializing in search, machine learning / AI, and data science. He was a founding employee of Endeca, a search pioneer that Oracle acquired in 2011. He then led engineering and data science teams at Google and LinkedIn. He’s worked with a wide range of consulting clients, including Apple, eBay, Pinterest, Salesforce, Yelp, and Zoom. He wrote a book on Faceted Search, published by Morgan & Claypool, and he blogs on Medium about search-related topics — particularly query understanding. Daniel has degrees in Computer Science and Math from MIT and a PhD in computer science from CMU.
Search has been one of the defining technologies of the digital age. Searching billions of documents on Google allows us to access much of the world’s information. Ecommerce allows us to shop online, and search allows us to find the things we want to buy. Even the latest advances in digital assistants like Siri and Alexa rely on search engines to address user needs. And, unlike most of the other ways we interact with the internet, search puts the user in the driver’s seat, starting with the user’s explicitly expressed intent in the form of a search query.
Yet, despite the importance and ubiquity of search in our daily lives, the fundamentals of search engines are not part of the mainstream computer science or software engineering curriculum. Which is a shame, because search engines not only enable useful applications, but also are a rich and technically deep subject in their own right. Moreover, search is a great domain to which we can apply the latest developments in machine learning and AI.
Over the next two weeks, we will cover the fundamentals of search: indexing, querying, hand-tuned ranking, aggregations, and search user interfaces. We’ll use Opensearch, an open fork of Elasticsearch, but what you learn will apply to other search platforms, such as Apache Solr and Vespa. We hope you not only come away from this course with practical skills, but also with a passion for search as a subject.
- Fundamentals of search architecture and main search application components such as indexing, query parsing, and querying
- How search engines ingest, transform, and represent content in the search index
- Querying your index for effective and efficient retrieval
- Basic search operations: managing your search system
- How to use key OpenSearch / Elasticsearch APIs
- How to model and measure search relevance
- Relevance, ranking, diversity – how they all fit together
- How to implement, evaluate, and improve a hand-tune ranking function
- Using facets and aggregations to summarize and refine search results
- Autocomplete, spell correction, snippets, and other search features
Grant has a unique combination of breadth and depth in the search space, from designing a search solution for performance and stability at scale, while also having deep expertise in the internals of the engine, such as text analysis, relevancy tuning, query optimization, and index design. You won’t find a better teacher to provide a solid foundation in the theory as well as how to apply it when building real world search applications.
I can think of no better person to teach a class on 'search with machine learning' than Grant Ingersoll. Through his open source work on the Apache Solr search engine and as a founder of the Apache Mahout machine learning framework, Grant has done more to teach developers about the technology concepts and applications of ML and search than anyone in the business. If you type “machine learning “and “search” into Google, the top result is Lucidworks, a company that Grant was the driving force for. This is a no-brainer, take this class from Grant!
Grant is an established expert in the area of Search, Machine Learning, and AI! He has the mind of a researcher, an educator and has demonstrated the applicability of these deep topic areas into real-world products used by enterprises. What better way to learn than from someone who is a published author, a hands-on practitioner, and an industry expert?
Daniel is a well-known expert on what useful search looks like in practice. Between his founding role as Endeca's chief scientist, his experience at Google and LinkedIn, and his consulting for numerous tech companies and retailers, he has seen and done it all. If you want to learn about relevance, user happiness, and optimizing search applications so they actually help people find things, you cannot do better than a course from Daniel.
Daniel has unparalleled experience in search and machine learning. He brings practical experiences and has consulted for a wide range of companies from Apple to Zoom.
Software engineers and data scientists, and other technical professionals who are new to the area or interested in working in it.
This class is not intended for experienced search professionals, since it will cover the basics. It is an introductory course, and also serves to prepare students for more advanced material, such as the course on Search with Machine Learning.
Ability to write Python and work with documented libraries.
Comfort working with web applications, Docker basics (e.g. start, stop) and the command line.