HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
danthegoodman1
bloomsearch
Go2025–2025
danthegoodman1 / bloomsearch

bloomsearch

Keyword search engine with hierarchical bloom filters for massive datasets

2Distinct people
4Mentions
0Explicit recommenders
164GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Keyword search engine with hierarchical bloom filters for massive datasets

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week4 dated mentions

Observed mentions: 2025-07-13 16:02:19 UTC to 2025-11-04 17:35:40 UTC. Weeks start Monday, UTC.

0122025-07-07 00:00:00 UTC to 2025-07-14 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJul 72025-07-14 00:00:00 UTC to 2025-07-21 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-07-21 00:00:00 UTC to 2025-07-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-07-28 00:00:00 UTC to 2025-08-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-04 00:00:00 UTC to 2025-08-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-11 00:00:00 UTC to 2025-08-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-18 00:00:00 UTC to 2025-08-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-08-25 00:00:00 UTC to 2025-09-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-01 00:00:00 UTC to 2025-09-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 12025-09-08 00:00:00 UTC to 2025-09-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-15 00:00:00 UTC to 2025-09-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-22 00:00:00 UTC to 2025-09-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-09-29 00:00:00 UTC to 2025-10-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-06 00:00:00 UTC to 2025-10-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-13 00:00:00 UTC to 2025-10-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-20 00:00:00 UTC to 2025-10-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-10-27 00:00:00 UTC to 2025-11-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-11-03 00:00:00 UTC to 2025-11-10 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 3

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 72025-07-07 00:00:00 UTC2025-07-14 00:00:00 UTC110
Jul 142025-07-14 00:00:00 UTC2025-07-21 00:00:00 UTC211
Jul 212025-07-21 00:00:00 UTC2025-07-28 00:00:00 UTC000
Jul 282025-07-28 00:00:00 UTC2025-08-04 00:00:00 UTC000
Aug 42025-08-04 00:00:00 UTC2025-08-11 00:00:00 UTC000
Aug 112025-08-11 00:00:00 UTC2025-08-18 00:00:00 UTC000
Aug 182025-08-18 00:00:00 UTC2025-08-25 00:00:00 UTC000
Aug 252025-08-25 00:00:00 UTC2025-09-01 00:00:00 UTC000
Sep 12025-09-01 00:00:00 UTC2025-09-08 00:00:00 UTC000
Sep 82025-09-08 00:00:00 UTC2025-09-15 00:00:00 UTC000
Sep 152025-09-15 00:00:00 UTC2025-09-22 00:00:00 UTC000
Sep 222025-09-22 00:00:00 UTC2025-09-29 00:00:00 UTC000
Sep 292025-09-29 00:00:00 UTC2025-10-06 00:00:00 UTC000
Oct 62025-10-06 00:00:00 UTC2025-10-13 00:00:00 UTC000
Oct 132025-10-13 00:00:00 UTC2025-10-20 00:00:00 UTC000
Oct 202025-10-20 00:00:00 UTC2025-10-27 00:00:00 UTC000
Oct 272025-10-27 00:00:00 UTC2025-11-03 00:00:00 UTC000
Nov 32025-11-03 00:00:00 UTC2025-11-10 00:00:00 UTC101

What Hacker News says

4 sources
The BloomSearchEngine takes a TokenizerFunc so you can determine how JSON values are tokenized (that's why each path always returns an array of strings). The default tokenizer is a a whitespace one: https://github.com/danthegoodman1/bloomsearch/blob/148a79967... So {"name": "John Smith"} is tokenized to [{Path: "name", Values: ["john", "smith"]}], and the bloom filters will store: - field: "name" - token: "john" - token: "smith" - fieldtoken: "name:john" - fieldtoken: "name:smith" The same tokenizer must be used at query time too. Fuzzy searches and sub-word searches could be supported with custom tokenizers (eg trigrams, stemming), but it's more generally targeting the "I know some exact subset of the record, I need all that have this exactly" searches
In Show HN: BloomSearch – Keyword search with hierarchical Bloom filters

Show HN: BloomSearch – Keyword search with hierarchical Bloom filters

Hey HN! I got nerd-sniped by Bloom Filters this weekend, specifically for searching datasets with high "cardinality" (number of unique items). They're an _amazing_ data structure that, at a fixed size, tracks potential set membership. That means unlike normal b-tree indexes, they don't grow with the number of unique items in the dataset. This makes them great for "needle in a haystack" search (logs, document) as implementations like VictoriaMetrics and Bing's BitFunnel show. I've used them in the past, but they've never been center-stage in my projects. I wanted high cardinality keyword search for ANOTHER project... and, well, down the yak-shaving rabbit hole we go! BloomSearch brings this into an extensible Go package: - Very memory efficient via bloom filters and streaming row scans - DataStore and MetaStore interfaces for any backend (
Read the rest
can be same or separate) - Hierarchical pruning via partitions, minmax indexes, and of course bloom filters - Search by field, token, or field:token with complex combinators - Disaggregated storage and compute for unbound ingest and query throughput And of course, you know I had to make a custom file format ^-^ (FILE_FORMAT.MD) BloomSearch is optimized for massive concurrency, arbitrary cardinality and dataset size, and super low memory usage. There's still a lot on the table too in terms of size and performance optimizations, but I'm already super pleased with it. With distributed query processing I'm targeting >100B rows/s over large datasets. I'm also excited to replace our big logging bill ~$0.003/GB for log storage with infinite retention and guilt-free querying :P
66 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.