
Foreword
Over the last decade, search has become ubiquitous—the keyword search box has evolved to become the de facto UI for exploring data and for navigating most websites and applications. At the same time, delivering a truly relevant search experience has been elusive, if not a critical blind spot for most organizations.
Powerful open source technologies have arisen to deliver fast, feature-rich search (Apache Lucene) in a distributed, highly scalable way with little-to-no coding required (Apache Solr and later Elasticsearch). This has provided the necessary infrastructure for almost any developer to build a “generally relevant” real-time search engine for the big data era. As more of the hard search infrastructure problems have been solved and their solutions commoditized, the competitive differentiators have moved away from providing fast, scalable search and more toward delivering the most relevant matches for a user’s information need. In other words, delivering “generally relevant” results is no longer sufficient—Google and other top search engines have now trained users to expect search applications to almost read their minds. This book is about how to move more aggressively in that direction of understanding user intent.