With the frustrations from using the usual search engines growing I’ve been thinking about this a lot lately.
It seems we’ve poisoned the well by allowing the proliferation of advertising interests to dominate the web.
Like how hard would it be to make your own non-commercial index?
Only human made sites that aren’t related to buying, selling, marketing, etc.
Could that be a federated open-source project?
Yacy works ok.
Surprisingly easy. This guy did runs his own search engine that focuses on the “marginalia” of the internet, i.e. smaller sites:
https://marginalia-search.com/
Business model
Web search has traditionally been difficult to monetize, which has pushed many search engines to go the route of advertisement, to the detriment of the search results.
The project is independent in that it has no loans, no investors looking for a payday, no strings attached anywhere to pressure it into doing anything than providing as much and as good internet search as it is capable of.
The marginalia search engine is designed to be very cheap to run and operate, and the goal is to provide outsized value, and thus be able to scrape by on donations, grants and commercial API-deals with other search engines.
The project currently has bills in the ballpark of $200/month, meaning it can keep operating even if funding runs completely dry, although this would cause development to stall almost completely.
That’s neat. I’ll have to check that out
i think it is fairly easy to get an index.
what is hard is to get the search results of an index somewhat relevant to the user. duckduckgo was struggling with this on its first years.
“only human-made” sites is a tough category as well.
With the open source tools that are available nowadays I think it’s not necessary hard, but you shouldn’t underestimate the hardware costs required to do this well. You will need a lot of high speed disk space to store the index and you will need an army of crawlers to stay up to date.
Interesting. I wonder if we’ve finally found a use for blockchain.
*Edit: lol, the downvotes. Sheesh
Rather than just downvote you and move on, I want you to follow that to its conclusion. Blockchain is normally used for ledger type applications that are fixed or you need a verifiable history. How would either of those situations help in regards to a search index?
Thanks, nothing irritates me more than downvotes on a speculative statement.
I was thinking that having the index spread out amongst systems with their own crawlers would create some resiliency as well as spread out the hardware requirements.
But that might be me just misunderstanding the concept. Maybe something else works better.
The internet is great for connecting machines. HTTP(s) could even be used to transfer messages. Blockchain is good for maintaining a historical record. The farther down the chain you go, the harder it becomes to rewrite history. You pay for this feature by requiring everyone to permanently keep the whole shared historical record. Some workarounds for the permanent storage of the whole history exist but that’s blockchain in a basic form. The permanent record is a nice feature for things like financial transactions.
Blockchain bros tried to convince us blockchain is great for sharing information in an effort to increase its relevance. You may connect it for that reason. In their defence, blockchain can be used for data transfer, it’s just not that great at it.
Blockchain could be used to assert trust, but most problems have equally good or better alternative solutions for that. Very often these use digital signatures and public-private keypairs.
You may want to look at YaCy for a decentralised search engine.
Thanks for the explanation.
I think you said “blockchain” when you really meant “distributed hash table.”
I shouldn’t have said anything at all because now people much smarter than me are going down a rabbit hole instead the main gist I was trying to convey. 😵💫
I didn’t mean to discourage you! I just meant to point you to the right technology to learn about.
Storing the index on the blockchain itself isn’t really feasible, but I think you could leverage it as a source of truth for what distributed stores (e.g. torrent, WebDAV, ftp, s3) contain the correct and latest info.
Tough part is verification. You need a consensus for what is accurate before you add it to the chain. If someone indexes 1000 sites and someone else goes to verify it the sites could’ve changed in that time. Doesn’t mean the proposed data is wrong but how do you separate outdated info from bad info (i.e. data poisoning)?
We haven’t
There’s a reason why only the big few are doing it. Even DuckDuckGo have given up their own crawler long ago.
What’s the reason?
The index (i.e just the list of urls) of common crawl is 250gb. The actual crawl is 500tb ish. Then pull out just the text you get down to 30tb ish. And then you need that all to be in a fts index… (something like opensearch/elasticsearch) idk how big the cluster you would need for that is… maybe 2tb per data node max. So 15 pretty beefy vms (8cpu w/64gb memory) with 2tb nvme for data and a few more as controller nodes
Common crawl numbers pulled from this paper
https://aclanthology.org/anthology-files/anthology-files/pdf/L/L18/L18-1286.pdf
Cluster sizing numbers pulled from tea leaf divination
Thanks for providing that!
Not for the faint of heart resource-wise, but doesn’t sound impossible for a dedicated group.
Oops, realized I didn’t answer your question about actually crawling, dig into common crawl documentation, they provide a bunch of technical data and stats that show you the scale…2-4billion pages per month
And note CC just does a sample of the pages it finds. So the more monthly dumps don’t contain all of the data afaik
And the number above are for one of the monthly dumps
https://commoncrawl.github.io/cc-crawl-statistics/plots/crawlermetrics



