As of today, the term Search Engine is synonymous to Google. It’s the world’s largest and possibly the most efficient search engines of this time. I was always fascinated by it, but also the sheer complexity of it made me think of it as something extremely difficult to understand. And yes, it is a complex engine that has taken years and thousands of people to bring to a stage where it is right now. But this fascination of mine led me to discover a way to learn and use search Engines.
Thanks to on of my friends at work, I came across Apache Solr. Solr, is an open source search engine, based on Lucene which is an open source text based search engine library. This search engine is extremely powerful and there are some amazing implementation of it that is competing with Google. One such example is DuckDuckGo.
Solr is an enterprise grade search engine that is capable enough to crunch Terra Bytes of data without any problem ,provided there is enough resources allocated to it. So, I read about this and found that I could use it to learn more about how search engines to work. I came across a lot of new topics and some others which I had misconceptions about. Indexing, analyzers, tokenizers, searching with regular expressions and facet searches are some of the concepts related to it. I spent some time reading about it and soon enough I was able to index a csv file that had information about my music collections and was able to search for songs , albums, etc with the search results being generated in milliseconds.
Within no time, I had a search engine server running on my local machine and it was like a mini search engine for my music collection. This gave me an idea to dive more deeper into Solr and learn about all the things I could do with it. So, I decided to create a blog series on search engines to share and document the various things that I come across and learn.
I haven’t yet decided the number of posts that will come under this series, but I would like to keep each of them short with rich information. By the end of it, I aim to build a search engine for the music collection that can search songs based on several criteria and also give functionality to play a song directly from the search result screen.Somewhat like a web based music player.
If you have any ideas or things you would like to share or contribute, share it in the comments below.