Ask HN: What Would It Take to Make an Open Source Google?
Having little experience with search engines, I wonder whether it would be possible to create an open source alternative to Google? I applaud, for example, DuckDuckGo for serving as a privacy-focused alternative to Google. But at the end of the day, to paraphrase Vitalik Buterin, I believe "can't do evil" beats "don't do evil".
Could the execution and runtime of said search engine be powered by blockchain/cryptocurrency tech? There are several existing technologies like Sia that decentralize file storage. Or are other technologies better suited?
What are other challenges of operating a search engine? Regulatory compliance? Ethical scrubbing of results?
Would this solution be tenable or does search lend itself too much to a centralized entity like Google?
11 comments
[ 4.1 ms ] story [ 40.0 ms ] threadPeople would get paid to run crawlers / store indexes of the data.
Gonna ponder this
In order for open-source projects to be successful we need to contribute resources (time and money) and encourage coordination (I.e. contribute to existing efforts rather than bikeshedding or starting from scratch.)
Writing an open, and distributed web crawler / indexer is a nice programming exercise. Writing an "objective" ranking function (for any values of "objective") in an open, and distributed manner is structurally not favoured by humanity's current incentive structure. As in:
* a dev team have to agree on signals, and weights: "SERP quality" has dedicated teams of people assigned for specific verticals @ Google; replicating this in a distributed manner will be played politically
* Assuming any significant usage, the second you submit ranking code to public github repo, the algo will be played by thousand SEO scammers to their advantage
* Executing custom ranking function on other people's computer not only introduces security risks, but will have scammers setting up honeypots for collecting other people's ranking signals, and playing accordingly.
Indexing I have no idea how this could be done in a distributed way, as far as I know it basically cant. Distributed p2p apps use a central server or will send the search query to everyone on the entire network until some one gives them a result. Which isn't efficient enough to work on googles scale and the privacy issues.
My best guess is to break a query into tokens and then have a dht of indexes for each token and then have the peer request all the needed indexes compile them together or something? Anyway even if there is a way to distribute an index efficiently, I cant think of a way to generate the indexes in a secure way, at least without some sort of human oversight, which might be acceptable.
Distributed ranking runs into all the problems sdrinf pointed out. A better solution is to have lost of ranking factors enough that its easier to just make a good website than figure out the system and how to game it. Then let the end user weight the ranking factors to suite them, this should give better results than google and make SEO harder to fake.
Also, it is a lot of money only for handling the storage costs.