<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: jamesgresql</title><link>https://news.ycombinator.com/user?id=jamesgresql</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 09:39:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jamesgresql" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jamesgresql in "Show HN: Waffle – Native macOS terminal that auto-tiles sessions into a grid"]]></title><description><![CDATA[
<p>This is great, no more lost terminal screens!</p>
]]></description><pubDate>Sat, 11 Apr 2026 22:21:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47734521</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47734521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47734521</guid></item><item><title><![CDATA[New comment by jamesgresql in "A Conversation with Paul Masurel, Creator of Tantivy"]]></title><description><![CDATA[
<p>"If I had looked at the lexical search and BM25 space in 2016, I would have said it was solved, and that catching up would be nearly impossible."<p>This interview with Tantivy creator Paul Masurel looks at how wrong I would have been; discussing challenging solved domains, open-source competition done right, and why long-fermented frustration is an underrated driver.</p>
]]></description><pubDate>Tue, 07 Apr 2026 11:43:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47673677</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47673677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47673677</guid></item><item><title><![CDATA[A Conversation with Paul Masurel, Creator of Tantivy]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/tantivy-interview">https://www.paradedb.com/blog/tantivy-interview</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47673676">https://news.ycombinator.com/item?id=47673676</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 07 Apr 2026 11:43:28 +0000</pubDate><link>https://www.paradedb.com/blog/tantivy-interview</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47673676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47673676</guid></item><item><title><![CDATA[New comment by jamesgresql in "Why is your Mac WiFi Slow?"]]></title><description><![CDATA[
<p>Yeah I get that, I threw caution to the wind and did it (which I would normally never dO)</p>
]]></description><pubDate>Thu, 26 Feb 2026 19:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47171029</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47171029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47171029</guid></item><item><title><![CDATA[New comment by jamesgresql in "Why is your Mac WiFi Slow?"]]></title><description><![CDATA[
<p>I have no affiliation with this product other than being a happy user, but man is it good for finding out exactly why and when your wifi is slow.<p>Best feature for me being was being able to detect intermittent jitter to my gateway. I never managed to catch this with speed-tests alone.</p>
]]></description><pubDate>Thu, 26 Feb 2026 02:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47161197</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47161197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47161197</guid></item><item><title><![CDATA[Why is your Mac WiFi Slow?]]></title><description><![CDATA[
<p>Article URL: <a href="https://whyfi.network/">https://whyfi.network/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47161196">https://news.ycombinator.com/item?id=47161196</a></p>
<p>Points: 1</p>
<p># Comments: 3</p>
]]></description><pubDate>Thu, 26 Feb 2026 02:47:52 +0000</pubDate><link>https://whyfi.network/</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47161196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47161196</guid></item><item><title><![CDATA[New comment by jamesgresql in "Hybrid Search in PostgreSQL: The Missing Manual"]]></title><description><![CDATA[
<p>This is a no-nonsense walkthrough of doing hybrid search inside Postgres without spinning up a separate search service.<p>A few takeaway:
- Postgres’s native `tsvector/ts_rank` stuff works ok for basic text matching, but it doesn’t account for global term frequency like BM25 does , so rankings can feel “flat” or noisy as soon as you go beyond simple queries (it's also slow).
- Using a BM25 index (via extensions like `pg_search`) actually gives you relevance scores similar to what you’d expect out of modern search engines, and you can use stemmers/tokenization directly in SQL. BM25 is the star of this story.  
- Vector search fills in the semantic gaps (so “database optimization” isn’t limited to exact keywords), but you still don’t want to throw out lexical relevance. The trick is making it additive, not just adding scores together.   
- RRF (Reciprocal Rank Fusion) is a neat practical tool here. It sidesteps trying to normalize totally different scoring systems by just focusing on rank positions.<p>If you’re building anything where relevance matters (docs, product search, help articles) having BM25 + vector makes a big difference over vanilla FTS + embeddings alone. It also keeps everything in Postgres, which simplifies consistency/ops compared to an external search cluster.</p>
]]></description><pubDate>Tue, 17 Feb 2026 17:09:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47049876</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47049876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47049876</guid></item><item><title><![CDATA[Hybrid Search in PostgreSQL: The Missing Manual]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual">https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47049875">https://news.ycombinator.com/item?id=47049875</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 17 Feb 2026 17:09:29 +0000</pubDate><link>https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=47049875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47049875</guid></item><item><title><![CDATA[New comment by jamesgresql in "Elasticsearch was never a database"]]></title><description><![CDATA[
<p>I know it sounds obvious, but some people are pretty determined to us it that way!</p>
]]></description><pubDate>Sun, 11 Jan 2026 20:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46579955</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46579955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46579955</guid></item><item><title><![CDATA[Elasticsearch was never a database]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/elasticsearch-was-never-a-database">https://www.paradedb.com/blog/elasticsearch-was-never-a-database</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46579954">https://news.ycombinator.com/item?id=46579954</a></p>
<p>Points: 159</p>
<p># Comments: 106</p>
]]></description><pubDate>Sun, 11 Jan 2026 20:54:47 +0000</pubDate><link>https://www.paradedb.com/blog/elasticsearch-was-never-a-database</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46579954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46579954</guid></item><item><title><![CDATA[Elastic style faceted search from PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/faceting">https://www.paradedb.com/blog/faceting</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46449713">https://news.ycombinator.com/item?id=46449713</a></p>
<p>Points: 14</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 01 Jan 2026 00:05:38 +0000</pubDate><link>https://www.paradedb.com/blog/faceting</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46449713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46449713</guid></item><item><title><![CDATA[ParadeDB Makes Faceted Search 14× Faster Inside PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/faceting">https://www.paradedb.com/blog/faceting</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46425654">https://news.ycombinator.com/item?id=46425654</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 29 Dec 2025 21:04:24 +0000</pubDate><link>https://www.paradedb.com/blog/faceting</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46425654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46425654</guid></item><item><title><![CDATA[New comment by jamesgresql in "Teaching Postgres to Facet Like Elasticsearch"]]></title><description><![CDATA[
<p>Hey HN! Author here. We added faceted search capabilities to our `pg_search` extension for Postgres, which is built on Tantivy (Rust's answer to Lucene). This brings Elasticsearch-style faceting directly into Postgres with a 14x performance improvement over a CTE based approach by performing facet aggregations in a single BM25 index pass and making use of our columnar store.<p>You get the same faceting features you'd expect from a dedicated search engine while maintaining full ACID compliance. Happy to answer technical questions about the implementation!</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:39:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46266065</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46266065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46266065</guid></item><item><title><![CDATA[Teaching Postgres to Facet Like Elasticsearch]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/faceting">https://www.paradedb.com/blog/faceting</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46266050">https://news.ycombinator.com/item?id=46266050</a></p>
<p>Points: 4</p>
<p># Comments: 3</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:37:41 +0000</pubDate><link>https://www.paradedb.com/blog/faceting</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46266050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46266050</guid></item><item><title><![CDATA[New comment by jamesgresql in "From text to token: How tokenization pipelines work"]]></title><description><![CDATA[
<p>Haha, I like “good old tokenization”</p>
]]></description><pubDate>Fri, 12 Dec 2025 18:49:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46247299</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46247299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46247299</guid></item><item><title><![CDATA[New comment by jamesgresql in "From text to token: How tokenization pipelines work"]]></title><description><![CDATA[
<p>Amazing, will have a read!</p>
]]></description><pubDate>Fri, 12 Dec 2025 18:31:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46247114</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46247114</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46247114</guid></item><item><title><![CDATA[New comment by jamesgresql in "From text to token: How tokenization pipelines work"]]></title><description><![CDATA[
<p>Chinese, Japanese, Korean etc.. don’t work like this either.<p>However, even though the approach is “old fashioned” it’s still widely used for English. I’m not sure there is a universal approach that semantic search could use that would be both fast and accurate?<p>At the end of the day people choose a tokenizer that matches their language.<p>I will update the article to make all this clearer though!</p>
]]></description><pubDate>Fri, 12 Dec 2025 18:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46247103</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46247103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46247103</guid></item><item><title><![CDATA[New comment by jamesgresql in "From text to token: How tokenization pipelines work"]]></title><description><![CDATA[
<p>100%, maybe we should do a follow up on other types of tokenization.</p>
]]></description><pubDate>Fri, 12 Dec 2025 18:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46247034</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46247034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46247034</guid></item><item><title><![CDATA[New comment by jamesgresql in "The Missing Manual for Hybrid Search in PostgreSQL"]]></title><description><![CDATA[
<p>Hello HN, author here. It seems like everyone is talking about 'hybrid search' (lexical/BM25 + semantic/vector) these days, so I wanted to show how it's possible (and fully customizable) using reciprocal rank fusion in SQL.</p>
]]></description><pubDate>Mon, 08 Dec 2025 19:19:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46196427</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46196427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46196427</guid></item><item><title><![CDATA[The Missing Manual for Hybrid Search in PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual">https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46196391">https://news.ycombinator.com/item?id=46196391</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 08 Dec 2025 19:16:31 +0000</pubDate><link>https://www.paradedb.com/blog/hybrid-search-in-postgresql-the-missing-manual</link><dc:creator>jamesgresql</dc:creator><comments>https://news.ycombinator.com/item?id=46196391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46196391</guid></item></channel></rss>