<story><title>Elasticsearch from the Bottom Up (2013)</title><url>https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up</url></story><parent_chain></parent_chain><comment><author>jjwiseman</author><text>Back in 2006 I wanted to learn more about how search engines worked, so I started porting Lucene to Common Lisp. Actually, I wrote a Common Lisp port of Ferret. Ferret is a Ruby port of Lucene. Lucene is sort of Doug Cutting&amp;#x27;s Java version of Text Database (TDB), which he and Jan Pedersen developed at Xerox PARC, and which, to complete the circle, was written in Common Lisp.&lt;p&gt;I didn&amp;#x27;t know Ruby, and I didn&amp;#x27;t know search engines, but I did know Common Lisp. It took me 7 months to create a binary-compatible, pretty dang functional port of Lucene. I called it Montezuma[1], and it&amp;#x27;s still actually used by people.&lt;p&gt;About half the time was spent implementing the text analyzer, document store, and indices. The remaining 50% was spent implementing search (and parsing the query language). It was a very rewarding experience--It was one of the largest projects I&amp;#x27;d worked on, mostly solo (I got some help near the end), in an area I knew nothing about, working in an extremely test-driven fashion (over 2000 unit tests when I was done).&lt;p&gt;I did not, however, learn as much about indexing and search as I expected. I learned a lot, yes, but quite a bit of the Ruby code was so easy to translate to Common Lisp that I didn&amp;#x27;t have to understand everything in order to make it work.&lt;p&gt;I still recommend writing a small search engine as an interesting exercise, though.&lt;p&gt;1. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;sharplispers&amp;#x2F;montezuma&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;sharplispers&amp;#x2F;montezuma&lt;/a&gt;</text></comment>
<story><title>Elasticsearch from the Bottom Up (2013)</title><url>https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up</url></story><parent_chain></parent_chain><comment><author>bratao</author><text>Shameless plug from someone who want this project to flourish.
Check &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;vespa.ai&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;vespa.ai&lt;/a&gt; as an alternative to Elasticsearch. Migrating from a ES to it, I got a faster search, never had to face a unhealthy node and native tensor support (And Native ANN is coming soon &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;vespa-engine&amp;#x2F;vespa&amp;#x2F;issues&amp;#x2F;9747&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;vespa-engine&amp;#x2F;vespa&amp;#x2F;issues&amp;#x2F;9747&lt;/a&gt;).&lt;p&gt;Very mature, and still progressing at a neck-break rate (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;blog.vespa.ai&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;blog.vespa.ai&lt;/a&gt;)</text></comment>