Search is not only an exciting topic, but also a great fit for Clojure. The problem domain is well suited to the functional programming methodology that is idiomatic in Clojure and thanks to the plethora of excellent Java libraries that are available you never have to reinvent the wheel. This will be a very practical session. Theory will be kept to a minimum so we can focus on actual code. Thankfully, we can let libraries like Apache Lucene do the hard work for us, so we won’t have to worry about the deeper mechanics.
After a quick overview of the topic we will dive into the code for the different components you need for a search engine: a data gathering mechanism, indexing and of course the actual search process. There will be a healthy amount of data wrangling as we parse the source material with Enlive, examine and possibly modify it and finally feed it into a Lucene index.