alt.hn

5/20/2025 at 9:58:56 AM

A simple search engine from scratch

https://bernsteinbear.com/blog/simple-search/

by bertman

5/20/2025 at 11:35:59 AM

On the topic of search engines, I really liked classes by David Evans. The task was also building a simple search engine from scratch. It's really for beginners, as the emphasis is on coding in general, but I've found it to be very approachable.

https://www.cs.virginia.edu/~evans/courses/

by franczesko

5/20/2025 at 2:28:30 PM

The SeIRP-book, free online as a PDF, is also a fantastic resource on traditional search engines and information retrieval in general.

[1] https://ciir.cs.umass.edu/irbook/

by marginalia_nu

5/20/2025 at 3:00:47 PM

Due to dead links, this is more appropriate url:

https://www.cs.virginia.edu/~evans/courses/cs101/

by franczesko

5/20/2025 at 5:38:24 PM

Server not found. Did HN gave it hug of death?

by StefanBatory

5/20/2025 at 7:25:20 PM

Please see links to videos and notes - they still work. Udacity must have removed the course

by franczesko

5/20/2025 at 7:20:16 PM

the actual course link on udacity gives a 404.

by fuzztester

5/20/2025 at 1:12:31 PM

I always wonder if the days of search engines for specific topics could return. With LLM's providing less than accurate results in some areas, and Google, bing, etc being taken over by adverts or well organised SEO, there feels like a place for accurate, specialised search.

by ktallett

5/20/2025 at 4:46:38 PM

Yeah, the (relative) rise of Kagi and Marginalia show that from a technical perspective, this is within the grasp of a dedicated hobbyist.[1] If Google continues their current trajectory, and overwhelming numbers of AI crawlers don’t cause an unsurmountable rise in CAPTCHA pages, I hope to see an upsurgence of niche search engines that focus on some specialty small enough that one or a few people can curate the content and produce a much better experience than the current crop of general Web search engines.

Self-plug: I run such a search engine (for programmers) in my living room, at <https://search.feep.dev/>. I don’t spend a ton of time maintaining it, so I’m interested to see what someone really dedicated could do.

[1] I wrote a 2004-vs-2014 comparison, and things have only gotten better since then: https://search.feep.dev/blog/post/2022-07-23-write-your-own

by wolfgang42

5/21/2025 at 8:08:27 AM

Please, Kagi doesn't even have 50,000 active members, it's definitely not "rising" to become a serious contender at any sort of market share, it's a micro-project. You just feel it's bigger than that because for some reason all of its 50,000 users post relentlessly about it on HN.

by iLoveOncall

5/22/2025 at 1:56:18 AM

Hence the (relative), yes. Did “dedicated hobbyist” not tip you off that I wasn’t thinking about how to maximize market share?

by wolfgang42

5/21/2025 at 7:10:44 PM

Just gotta build a search engine that properly contextualizes scams, bait & switch sites, SEO, and the rest, and you're back in business.

To do that, you probably still need humans to properly curate the dataset, essentially hire 100 librarians and setup a work flow for them to continually prune results.

Right now, everything is all batch processes. None of these LLMs use active feedback since there's no real models using updates.

by cyanydeez

5/20/2025 at 1:16:55 PM

The curation of an index of resources is what's needed for niche search

by datadrivenangel

5/21/2025 at 7:15:35 PM

i know the answer is never distributed services, but if one could build a sufficiently complex SDK to make like a Blue Sky but for niche search indexes, you could chain a bunch of vetted resources together.

by cyanydeez

5/20/2025 at 3:55:25 PM

My hope is that content self-indexes so instead curation it just has to be aggregated.

by cosmicgadget

5/21/2025 at 7:11:35 PM

Depends how tiny the niche is. A few dozen domains is easily done by hand and worth having.

by econ

5/20/2025 at 1:23:17 PM

WestLaw and Lexis Nexis provide this for legal search, but quite frankly, these services are subpar. It's amazing that these two companies rake in hundreds of millions but they are both slower than Google, Bing, Yandex, or any LLM service (ChatGPT, Claude, Gemini, etc.) while scouring a universe of text that is orders of magnitude smaller. The user experience is also terrible (you have to login and specify a client each and every time you attempt to use the service and both services log you out after a short -- in my opinion -- period of inactivity, creating friction and needless annoyance to the user). There's an opportunity there.

by dcist

5/20/2025 at 2:11:24 PM

LN and Westlaw's real service is their ubiquity. Every law student has access to it and every firm expects proficiency. While they generally suck, the last time I used it (looong time ago), their boolean search was quite nice. That kind of text search has mostly been replaced by non-deterministic black boxes which aren't great for legal research.

by ahi

5/20/2025 at 4:53:50 PM

They've also got the Microsoft effect going on. Usually at least one of their products like their personal information aggregator used for locating people (like when serving lawsuits) is mandatory for a firm so it's just easier for them bundle everything else in.

by throwup238

5/20/2025 at 3:22:41 PM

You forgot to mention their claim of copyright over the bulk of, e.g. obscure state case law.

by piker

5/20/2025 at 4:36:49 PM

So, you have to pay to access the law that you are subject to?

by ehecatl42

5/22/2025 at 2:18:56 AM

In some jurisdictions, like Ontario, there are secret agreements that only allow 3 organizations to have digital access to Case Law (https://www.cameronhuff.com/blog/ontario-case-law-private/). This says a lot about our society, and how much we still have to improve.

by jfil

5/20/2025 at 5:36:10 PM

If you want it digitized, yes, odd as that seems. You can go find individual prints of it or perhaps digital copies of opinions elsewhere, but those are also technically copyrighted in a lot of cases too.

by piker

5/20/2025 at 1:28:40 PM

I haven't personally used the mentioned services as they aren't in my field, however what is the accuracy of their results? Are they double checked? I don't find LLMs particularly accurate in my field (that's being kind), if anything I find they make up sources that simply don't exist.

I mean poor UX has no excuse but slow speed can be reasoned if it makes the quality of the service better.

by ktallett

5/20/2025 at 2:19:31 PM

Which is not scalable, right?

by raydenvm

5/20/2025 at 3:49:18 PM

It's scalable if you are okay with not searching exhaustively.

by cosmicgadget

5/20/2025 at 1:41:51 PM

I already directly search on Wikipedia for most topics (with a search shortcut on URL bar)

by fanwood

5/20/2025 at 1:43:29 PM

Wikipedia is useful up to a point for sure. I feel whether it could be a expansion of Wikipedia in it's current use case, but for emerging research and niche topics it can sometimes be less useful.

by ktallett

5/20/2025 at 3:15:43 PM

Nice idea, but this approach does not handle out of vocabulary words well which is one major motivation for using a vector-based search. It might not perform significantly better compared to lexical matching like tf-idf or BM25, and being slower because of linear complexity. But cool regardless.

by snowstormsun

5/20/2025 at 3:19:49 PM

It is supposed to be a simple search engine. Keyword: simple.

As long as it does what it is meant to, as a simple search engine, it seems fine

by netdevphoenix

5/20/2025 at 3:30:12 PM

Using tfidf or bm25 would actually be simpler than a vector search.

I understand this is just for fun, just wanted to point that out.

by snowstormsun

5/21/2025 at 6:07:17 PM

TF/IDF does not support out-of-vocabulary keywords as far as I know.

by LunaSea

5/20/2025 at 6:03:50 PM

Or since OP has both the cosine similarity matching and naive matching, a heuristic combination of the two since they address each other's weaknesses.

by cosmicgadget

5/20/2025 at 10:09:58 PM

Vector based approaches either don’t handle OOV terms at all or will perform poorly, depending on implementation. If you limit to alphanumeric trigrams for example you can technically cover all terms but badly depending on training data.

by janalsncm

5/20/2025 at 3:48:21 PM

How would you handle those in wordvec?

And isn’t a big advantage that synonyms are handled correctly. This implementation still has that advantage.

by haasisnoah

5/21/2025 at 1:45:30 AM

The author has a nice series on compiling a Lisp [0], but unfortunately his search engine fails to find it by querying it with "lisp" or "Lisp".

[0] https://bernsteinbear.com/blog/compiling-a-lisp-0/

by leumassuehtam

5/21/2025 at 3:17:52 AM

I wonder if that's just not in the top 10k words :/

by tekknolagi

5/21/2025 at 9:33:50 AM

And it's unfinished since 2020.

by freilanzer

5/20/2025 at 5:04:22 PM

> The idea behind the search engine is to embed each of my posts into this domain by adding up the embeddings for the words in the post.

Ah, OK! I never really grokked how to use word-level embeddings. Makes more sense now.

by kaycebasques

5/20/2025 at 5:32:02 PM

Is 'grokked' a common verb now? I had never even heard the word until Musk's AI.

by skarz

5/20/2025 at 5:41:31 PM

A common verb "now"??

> Grok (/ˈɡrɒk/) is a neologism coined by the American writer Robert A. Heinlein for his 1961 science fiction novel Stranger in a Strange Land. While the Oxford English Dictionary summarizes the meaning of grok as "to understand intuitively or by empathy, to establish rapport with" and "to empathize or communicate sympathetically (with); also, to experience enjoyment",[1] Heinlein's concept is far more nuanced, with critic Istvan Csicsery-Ronay Jr. observing that "the book's major theme can be seen as an extended definition of the term."[2] The concept of grok garnered significant critical scrutiny in the years after the book's initial publication. The term and aspects of the underlying concept have become part of communities such as computer science.

https://en.wikipedia.org/wiki/Grok

by kaycebasques

5/20/2025 at 5:44:36 PM

Yes, "now". According to Google Trends[0] there was little to no search interest in the term until December 2023.

Usage of 'grokked' on HN: 1,147[1]

Usage of 'hacked' on HN: 37,272[2]

[0] https://trends.google.com/trends/explore?date=all&geo=US&q=g...

[1] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

[2] https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

by skarz

5/20/2025 at 6:19:05 PM

I do not think "hacked" is a good comparison, does not "to grok [smth]" mean "to understand [smth]"?

by johnisgood

5/21/2025 at 4:16:05 AM

[flagged]

by coolcase

5/20/2025 at 5:42:52 PM

I never knew the etymology [0] but always knew the word for as long as I've been into computing (90's) .. apparently it's from the 1960's from a Heinlein novel!

[0] - https://en.wikipedia.org/wiki/Grok

by kevinsync

5/20/2025 at 10:14:15 PM

Started hearing about it in ~2022 when some ML researchers accidentally left a model training on over a weekend. For a while the model wasn’t doing much (so they were going to turn it off) and then over the weekend it got surprisingly good.

https://en.m.wikipedia.org/wiki/Grokking_(machine_learning)

by janalsncm

5/20/2025 at 5:38:54 PM

It was a word before, as far as I remember. Saw it a few times here.

by StefanBatory

5/20/2025 at 5:41:44 PM

What does it even mean?

by skarz

5/20/2025 at 6:00:03 PM

To understand and comprehend something in fullness. To reach the depths of the concept, idea, or entity so deep that you are practically one with it. (This is per my recollection of the Heinlein story, where grokking one in fullness was the highest form of respect.)

by russfink

5/20/2025 at 1:59:57 PM

The SVG equation is very difficult to read if you're using a dark OS theme because the blog uses the OS preference for dark/light theme (and doesn't seem to give an option to change it manually, either.)

by sp0rk

5/20/2025 at 10:41:58 PM

On the side, not criticizing OP but I hate the word "cosine similarity" and I wish people would just call it a "normalized dot product" because anyone who took sophomore-level university calculus would get it, but instead we all invented another word

by dheera

5/20/2025 at 2:13:53 PM

Fixed, I think? Let me know

by tekknolagi

5/20/2025 at 5:33:22 PM

Works now (I noticed the same issue).

by DylanSp

5/20/2025 at 3:05:58 PM

This was a really nice read. Now I have no excuse not to upgrade my blog search. I do feel that I'll have a ton of long tail words like 'prank'.

by cosmicgadget

5/20/2025 at 6:25:54 PM

I really like people playing around with technology many take for granted, without understanding its core, underlying princliples

by vojtechrichter

5/20/2025 at 4:11:00 PM

this embeds words with word2vec, which is like 10 years old. at least use BERT or sentencetransformers :)

by swyx

5/20/2025 at 6:15:58 PM

I have been thinking a bit lately about how much sense that makes compared to just using word vectors, since traditional queries are super short and often keyword based(like searching for "ground beef" when wanting "ground beef recipes I can cook easily tonight") and so lack most of the context that BERT or similar gives you. I know there are methods like using seperate embeddings for queries and such, but maybe a basic word based search could be more useful, especially with something like fastText for out of vocabulary terms.

by gthompson512

5/20/2025 at 5:01:05 PM

[dead]

by curtisszmania

5/20/2025 at 1:25:34 PM

[dead]

by potato-peeler