Lucene: The Good Parts (2015)
blog.parse.ly
blog.parse.ly
Reading and translating code is such a great way to internalize a concept that you're unfamiliar with, while getting a glimpse into someone else's mental model.
Lots of people tell you to read code, but it's hard to overstate the power of filtering a codebase through your brain and out your fingertips.
I implemented a multi-tenant search engine on top of Lucene using C# and Azure Blob Storage under the direction of my manager at the time. This was actually pretty cool, because I had actually learned about TF-IDF and search technologies in school so it was nice to be using some of that knowledge. And there were a lot of problems to solve with regards to locking, index update coordination, etc. that, as we know, ES takes care of for us today. Anyway, the project was a success, and launched, and backed a couple of products for a couple of years until it was decommissioned due to outside forces basically making it irrelevant.
That knowledge and experience seems to have ultimately led me down the path to becoming the resident ES "expert" at my current position.
Lucene in Action was an incredible book though, esp. given the time when it came out, and somehow has remained quite relevant through the years too! Strong recommend!
I have no idea how I never knew that CNET created Solr! (Solr uses Lucene)
There's an interesting connection here: Doug Cutting, perhaps best known as the creator of Hadoop, was the Chief Architect at Cloudera. Most people recognize Doug as the creator of Apache Hadoop, but he also created Lucene. In fact, Hadoop originated from a Lucene subproject called Nutch, which aimed to build a scalable web crawler.
The technology had many applications beyond a web crawler, of course, but that was the original use case.
Lucene: The Good Parts - https://news.ycombinator.com/item?id=9667378 - June 2015 (14 comments)
Lucene: The Good Parts - https://news.ycombinator.com/item?id=9198092 - March 2015 (16 comments)
I absolutely hate this attitude. Different use cases have different requirements. The author here appears to be dismissing any use case different than their own as not practical.
Lucene gives you a lot of levers to control how it works and if you want to build a distributed, MVCC, ACID compliant datastore on top of it, you can. It's just not a concern of the library.
Yep, because it's a query language.
https://news.ycombinator.com/item?id=9670379
Also, SQL RDBMSes have changed in the intervening ~7 years. For example, PostgreSQL now has a native JSON data type[1] and many functions for working with JSON blob storage[2]. Lucene still handles unstructured text indexing and search use cases in a more direct way, however, and is still a magical analytical engine when wielded in the right way.
[1]: https://www.postgresql.org/docs/current/datatype-json.html
[2]: https://www.postgresql.org/docs/9.5/functions-json.html