Friday, October 3, 2014

Khoj - The multi-platform search engine

Problem Statement: Most of the developer use more than one operating system. Be it different flavors of Linux or Windows or Mac. This generation is lazy, we want to finish things as soon as possible! So we use search. No need to remember location of files, just enter a string and let OS worry and fetch it for us. Here the problem arises. Suppose I have a 1 TB HDD. I insert into one OS, search for a file, let it index for 30-45 minutes then search. I lend my HDD to some friend of mine, then they do the same exercise or I plug the same to another OS of mine.

Now, searching is the most basic thing. I have a smartphone and want to know if a file is present in my PC or not, why wait to go home?

Solution: A generic framework with all device compatibility, Using a database, which can be easily ported, and provide a uniform searching experience with minimum latency across all devices. 


We already have very efficient searching tools, why another?

  1. Web based searching are quiet different from desktop searches, web based searches gives priority to "whole words" instead of sub-strings. For example, the string "example", "ample" would be treated differently in a simple web-search as there are many relevant results. As there are relatively fewer number of files in desktop, results with string "ample" will also return results with "example".
  2. Different platforms have different tools for searching, which index locally, not portable to other systems. A shared DB will not only help solve this problem but also provide homogeneous platform for all platforms.
What languages will be used to develop?
As this is being developed with "generic" in mind, currently we are restricting our back-end to python. We are yet to decide on front-end.

Github Link: Khoj

No comments:

Post a Comment