Live data from Hacker News

The Evolution of Marginalia's Crawling

memex.marginalia.nu

11–20 of 25 posts

Re: The Evolution of Marginalia's Crawling

#11

@marginalia, Can you talk more about how you prioritize the URL frontier?

I use a combination of incoming links and the average ranking of these linking sites to add new sites to the crawl queue. It's not super sophisticated, and I think it matters less the bigger the crawl is.

Re: The Evolution of Marginalia's Crawling

#12

I've started to build a search engine as a hobby side project (I'm three weekends in. It's very much inspired by marginalia, but with different content, curation, and UX goals. I have beefy hardware at home that can see it through.) My early crawl architecture plans actually mirror this new scheme, so it's delightful to have a bit of confirmation I'm on a mildly correct track. One of my long-running side projects has…

I've noted my search engine index starts to get noticeably stale after about two months, and right now it takes 2 or so weeks to crawl. Extrapolating, that might mean that it's sustainable up to about 4x the size of my current index. Right now a lot of this work is manual. Kinda not long-term viable, but for now it's not too bad. Kick off a script every now and again and come back a week later and see how it went. Af…

Ah yeah, that makes sense. and there's a balance here. IMO, Google puts far too much weight on recent content (and makes it impossible to find that one post you read in 2007 and you remember the vague keywords for), but also staleness of content is also an issue.

I've built native support for RSS and JSON feeds for discovery on high-quality sites, and I'm also tracking estimated content refresh rate to know when to re-fetch.

(I'm at a point where I've given myself too many signals to flag against, and finding the right tuning while starting to build an index, where I'm also actively evolving the schema and figuring out how to prioritize content I return in SERPs, is a problem. My current thinking is just a series of differentiated set of rules that populate the crawl queue for different reasons—seeking appropriate breadth—but then I'll definitely hit the re-crawl issue, particularly around sites I'm scoring as high quality.)

Re: The Evolution of Marginalia's Crawling

#13
Kinda wish there was more software architecture discussions.

It's hard to get right, and has a huge effect on what you're able to do with your software, but it feels like many of us (myself very much included) are just sort of winging it as we go along based on fads, hunches and whatever random assortment of experiences we've had professionally, which can't be very many bigger projects no matter who you are or how long you've worked where.

Re: The Evolution of Marginalia's Crawling

#14

I've started to build a search engine as a hobby side project (I'm three weekends in. It's very much inspired by marginalia, but with different content, curation, and UX goals. I have beefy hardware at home that can see it through.) My early crawl architecture plans actually mirror this new scheme, so it's delightful to have a bit of confirmation I'm on a mildly correct track. One of my long-running side projects has…

I've noted my search engine index starts to get noticeably stale after about two months, and right now it takes 2 or so weeks to crawl. Extrapolating, that might mean that it's sustainable up to about 4x the size of my current index. Right now a lot of this work is manual. Kinda not long-term viable, but for now it's not too bad. Kick off a script every now and again and come back a week later and see how it went. Af…

I'm beginning to think that there's no right answer, because the ideal crawling rules depend a lot on what type on content you're seeking, which obviously can't be known up front.

I'm working on a federated search tool. I've built a few different sectors (I've called them "realms") that I care about (programming, automotive, racing, fediverse) and found that I need pretty different heuristics depending. Example: car forums circa ~2005 are a treasure trove of valuable information, but 17 year old posts about programming are (in general) less interesting. That informs a lot about how URLs need or do not need to be re-crawled.

Re: The Evolution of Marginalia's Crawling

#15
post #14

Earlier quoted context omitted.

I've noted my search engine index starts to get noticeably stale after about two months, and right now it takes 2 or so weeks to crawl. Extrapolating, that might mean that it's sustainable up to about 4x the size of my current index. Right now a lot of this work is manual. Kinda not long-term viable, but for now it's not too bad. Kick off a script every now and again and come back a week later and see how it went. Af…

I'm beginning to think that there's no right answer, because the ideal crawling rules depend a lot on what type on content you're seeking, which obviously can't be known up front. I'm working on a federated search tool. I've built a few different sectors (I've called them "realms") that I care about (programming, automotive, racing, fediverse) and found that I need pretty different heuristics depending. Example: car…

Yeah, probably. Could also be the answer isn't more complicated than to offer up the ability to control the search a bit more. Especially with forums it's easy to figure out the post time since there's only some half-dozen forum softwares. Maybe just add the option to filter by year or something would go a long way.

I do think offering different filters like that is probably a good option to having the search engine try to mind-read what you want based on spying on your historical queries and machine learning haruspicy.

Re: The Evolution of Marginalia's Crawling

#16

Earlier quoted context omitted.

I've noted my search engine index starts to get noticeably stale after about two months, and right now it takes 2 or so weeks to crawl. Extrapolating, that might mean that it's sustainable up to about 4x the size of my current index. Right now a lot of this work is manual. Kinda not long-term viable, but for now it's not too bad. Kick off a script every now and again and come back a week later and see how it went. Af…

Ah yeah, that makes sense. and there's a balance here. IMO, Google puts far too much weight on recent content (and makes it impossible to find that one post you read in 2007 and you remember the vague keywords for), but also staleness of content is also an issue. I've built native support for RSS and JSON feeds for discovery on high-quality sites, and I'm also tracking estimated content refresh rate to know when to r…

> Ah yeah, that makes sense. and there's a balance here. IMO, Google puts far too much weight on recent content (and makes it impossible to find that one post you read in 2007 and you remember the vague keywords for), but also staleness of content is also an issue.

There's actually a paradox with new content that should make it less interesting to crawl, which is that the odds content will vanish or change is inversely proportional to its age. If something has been around for 10 years, it's a fairly safe bet it will be tomorrow. If something has been around for 10 hours, it's a coin-toss.

Aggressively seeking out fresh content is probably a waste. If anything, fresh content should be regarded with suspicion. Maybe probe it a few days later to make sure it's still there before adding it to the index.

Re: The Evolution of Marginalia's Crawling

#17
Is there any value in starting with Common Crawl?

https://hn.algolia.com/?query=author%3Amarginalia_nu%20commo... > https://news.ycombinator.com/item?id=32205535#32211292

> It's simply too unwieldy. It's far easier (and cheaper) to do my own crawling at a manageable scale, than it is to work with CC's datasets.

Is there any way to contribute to Common Crawl beyond donating?

https://commoncrawl.org/big-picture/what-you-can-do/

Re: The Evolution of Marginalia's Crawling

#18

@marginalia, Can you talk more about how you prioritize the URL frontier?

I use a combination of incoming links and the average ranking of these linking sites to add new sites to the crawl queue. It's not super sophisticated, and I think it matters less the bigger the crawl is.

How do you keep it "indie"? Even fairly small sites probably link to Forbes or the Atlantic once in a while. Do you have a specific "block" list to keep large, commercial sites out of the results?

Re: The Evolution of Marginalia's Crawling

#19

Is there any value in starting with Common Crawl? https://hn.algolia.com/?query=author%3Amarginalia_nu%20commo... > https://news.ycombinator.com/item?id=32205535#32211292 > It's simply too unwieldy. It's far easier (and cheaper) to do my own crawling at a manageable scale, than it is to work with CC's datasets. Is there any way to contribute to Common Crawl beyond donating? https://commoncrawl.org/big-picture/what-yo…

Yeah I stand by that.

I just don't see what Common Crawl would actually help me with, other than making my own data more stale given it would take about as long to download the CC dataset as my own crawl takes to perform (i.e. ~200h).

As it stands, crawling isn't the hard part of building a search engine. Don't get me wrong, if you're doing data science and want to access a crawl data set, Common Crawl is amazing.

Re: The Evolution of Marginalia's Crawling

#20

Earlier quoted context omitted.

I use a combination of incoming links and the average ranking of these linking sites to add new sites to the crawl queue. It's not super sophisticated, and I think it matters less the bigger the crawl is.

How do you keep it "indie"? Even fairly small sites probably link to Forbes or the Atlantic once in a while. Do you have a specific "block" list to keep large, commercial sites out of the results?

I'll crawl those sites too. Most of them will be weeded out in the processing stage, where I exclude websites that have too much heavy duty javascript and tracking and so on. I only index about 20% of the documents I fetch.

Some still slip by, but the ranking algorithm takes care of the rest. I'm using personalized pagerank[1] biased toward a set of real human websites, which turns out to rather aggressively promote human websites.

[1] http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf (see ch. 6)

Post reply on HN