Thinking Elixir Podcast
290: Postgres Finally Gets Real Search

290: Postgres Finally Gets Real Search

Thinking Elixir Podcast

February 3, 202633:48

About this episode

<p>News includes Elixir v1.20.0-rc.1 with important type system improvements, not one but two new Elixir-native Bash interpreters for seamless interop, LiveCapture bringing zero-boilerplate storybooks to LiveView components, Christian Alexander's DurableObject library for persistent actors inspired by Cloudflare, Postgres getting a game-changing BM25 text search extension that rivals Elasticsearch, a breakthrough RAG approach that eliminates vector databases entirely while achieving 98.7% accuracy, and more!</p> <p>Show Notes online - <a href="http://podcast.thinkingelixir.com/290" rel="nofollow noopener">http://podcast.thinkingelixir.com/290</a></p> <p><strong>Elixir Community News</strong></p> <ul> <li><a href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025" rel="nofollow noopener">https://paraxial.io/</a> – Paraxial.io is sponsoring today's show! Sign up for a free trial of Paraxial.io today and mention Thinking Elixir when you schedule a demo for a special offer.</li> <li><a href="https://github.com/elixir-lang/elixir/releases/tag/v1.20.0-rc.1?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/elixir-lang/elixir/releases/tag/v1.20.0-rc.1</a> – Elixir v1.20.0-rc.1 released with bug fixes including improved type system performance and bitstring type handling</li> <li><a href="https://elixirforum.com/t/elixir-v1-20-0-rc-0-and-rc-1-released-type-inference-of-all-constructs/73927/31?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://elixirforum.com/t/elixir-v1-20-0-rc-0-and-rc-1-released-type-inference-of-all-constructs/73927/31</a> – Discussion of Credo warning issue with missing @moduledoc when using Elixir 1.20 RCs - fix is to upgrade Credo</li> <li><a href="http://github.com/tv-labs/bash?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">http://github.com/tv-labs/bash</a> – New Elixir-native Bash interpreter with complete implementation of Bash built-ins and quirks</li> <li><a href="https://github.com/elixir-ai-tools/just_bash?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/elixir-ai-tools/just_bash</a> – Second Elixir-native Bash interpreter implementation</li> <li><a href="https://github.com/achempion/live_capture?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/achempion/live_capture</a> – LiveCapture - zero-boilerplate storybook for LiveView components requiring only single line capture_all()</li> <li><a href="https://elixirforum.com/t/livecapture-zero-boilerplate-storybook-for-liveview-components-by-waffle-creator/74028?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://elixirforum.com/t/livecapture-zero-boilerplate-storybook-for-liveview-components-by-waffle-creator/74028</a> – ElixirForum post with more details about LiveCapture by Boris Kuznetsov</li> <li><a href="https://captures.captureui.com/phoenix_live_dashboard/components/Elixir.Phoenix.LiveDashboard.HomePage/render?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://captures.captureui.com/phoenix_live_dashboard/components/Elixir.Phoenix.LiveDashboard.HomePage/render</a> – Example LiveCapture storybook showing all components from LiveDashboard</li> <li><a href="https://github.com/leandrocp/autumn/blob/main/CHANGELOG.md?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/leandrocp/autumn/blob/main/CHANGELOG.md</a> – Autumn has been renamed to Lumis - v0.1.0 has same API as autumn v0.6.0</li> <li><a href="https://github.com/leandrocp/mdex?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/leandrocp/mdex</a> – MDEx project that uses Lumis for syntax highlighting</li> <li><a href="https://x.com/swmansionElixir/status/2014378959962567078?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://x.com/swmansionElixir/status/2014378959962567078</a> – SoftwareMansion announcement of updated Elixir Language Tour</li> <li><a href="https://elixir-language-tour.swmansion.com/introduction?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://elixir-language-tour.swmansion.com/introduction</a> – Updated Elixir Language Tour using Popcorn to run Elixir in browser via AtomVM</li> <li><a href="https://github.com/software-mansion/popcorn?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/software-mansion/popcorn</a> – Popcorn project that executes Elixir code in WebAssembly using AtomVM</li> <li><a href="https://github.com/ChristianAlexander/durable_object?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/ChristianAlexander/durable_object</a> – DurableObject library for Elixir - persistent, single-instance objects accessed by ID</li> <li><a href="https://hexdocs.pm/durable_object/readme.html?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://hexdocs.pm/durable_object/readme.html</a> – DurableObject documentation explaining stateful, persistent actors using GenServer, Ecto, and Spark DSL</li> <li><a href="https://developers.cloudflare.com/durable-objects/concepts/what-are-durable-objects/?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://developers.cloudflare.com/durable-objects/concepts/what-are-durable-objects/</a> – Cloudflare documentation describing Durable Objects and the Actor programming model</li> <li><a href="https://x.com/akshay_pachaar/status/2014314783391298019?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://x.com/akshay_pachaar/status/2014314783391298019</a> – Announcement about Postgres getting advanced text searching extension with BM25 ranking</li> <li><a href="https://github.com/timescale/pg_textsearch?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/timescale/pg_textsearch</a> – pg_textsearch extension bringing BM25 relevance ranking to Postgres (v0.5.0-dev, GA expected Feb 2026)</li> <li><a href="https://hexdocs.pm/torus?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://hexdocs.pm/torus</a> – Torus library for making search easier in Postgres for Elixir projects</li> <li><a href="https://x.com/_avichawla/status/2014586815714664698?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://x.com/_avichawla/status/2014586815714664698</a> – New RAG approach that doesn't need vector DB, embedding, chunking, or similarity search - hits 98.7% accuracy</li> <li><a href="https://huggingface.co/blog/daya-shankar/sota-ai-models?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://huggingface.co/blog/daya-shankar/sota-ai-models</a> – Explanation of SOTA (State of the Art) in AI models</li> <li><a href="https://github.com/VectifyAI/PageIndex?utm_source=thinkingelixir&amp;utm_medium=shownotes" rel="nofollow noopener">https://github.com/VectifyAI/PageIndex</a> – PageIndex - vectorless, reasoning-based RAG system using hierarchical tree index for long professional documents</li> </ul> <p>Do you have some Elixir news to share? Tell us at <a href="https://twitter.com/ThinkingElixir" rel="nofollow noopener">@ThinkingElixir</a> or email at <a href="mailto:show@thinkingelixir.com" rel="nofollow noopener">show@thinkingelixir.com</a></p> <p><strong>Find us online</strong></p> <ul> <li>Message the show - <a href="https://bsky.app/profile/thinkingelixir.com" rel="nofollow noopener">Bluesky</a></li> <li>Message the show - <a href="https://x.com/ThinkingElixir" rel="nofollow noopener">X</a></li> <li>Message the show on Fediverse - <a href="https://genserver.social/ThinkingElixir" rel="nofollow noopener">@ThinkingElixir@genserver.social</a></li> <li>Email the show - <a href="mailto:show@thinkingelixir.com" rel="nofollow noopener">show@thinkingelixir.com</a></li> <li>Mark Ericksen on X - <a href="https://x.com/brainlid" rel="nofollow noopener">@brainlid</a></li> <li>Mark Ericksen on Bluesky - <a href="https://bsky.app/profile/brainlid.bsky.social" rel="nofollow noopener">@brainlid.bsky.social</a></li> <li>Mark Ericksen on Fediverse - <a href="https://genserver.social/brainlid" rel="nofollow noopener">@brainlid@genserver.social</a></li> <li>David Bernheisel on Bluesky - <a href="https://bsky.app/profile/david.bernheisel.com" rel="nofollow noopener">@david.bernheisel.com</a></li> <li>David Bernheisel on Fediverse - <a href="https://genserver.social/dbern" rel="nofollow noopener">@dbern@genserver.social</a></li> </ul><p>Sponsored By:</p><ul><li><a rel="nofollow" href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025">Paraxial.io</a>: <a rel="nofollow" href="https://paraxial.io/?utm_source=thinkingelixir&amp;utm_campaign=thinkingelixir-oct2025">Paraxial.io is sponsoring today's show! Sign up for a free trial of Paraxial.io today and mention Thinking Elixir when you schedule a demo for a special offer. </a></li></ul>