nseaSeb

nseaSeb

Just published search_ash 0.5.0 (with search_core 0.4.0) on Hex.

What’s new: synonyms

You can now declare a synonym dictionary per language:

elixir

synonyms %{en: %{"cat" => ["kitten"]}}

Typing cat now builds a tsquery like (cat | kitten), matching documents whose search_text contains either. A few things worth knowing:

  • It’s dictionary-based, not semantic — the library doesn’t “know” cat and kitten are related, it applies exactly the mapping you give it.
  • It’s one-directional: "cat" => ["kitten"] means typing cat also finds kitten, not the reverse — add both directions if you want symmetry.
  • Stemming still applies on both sides, so plurals/inflections are handled automatically.
  • Synonyms only expand the full-text match + ranking (search_text/ts_rank) — they deliberately don’t affect the global-search label ranking tiers or fuzzy/typo matching, so an exact title match still ranks first.

This turns out to be pretty handy for domain acronyms too ("bl" => ["bon de livraison"], etc.) — not just lexical synonyms.

What’s fixed: a memory leak

Also fixed a subtle memory retention issue related to how Elixir handles large binaries — a small referenced binary was keeping a much larger one alive longer than necessary. Fixed by forcing a copy at the right point in the pipeline instead of holding a sub-binary reference.

Feedback welcome, as always — especially on the synonym API shape if anyone has strong opinions on bidirectional-by-default vs explicit.

repo: https://github.com/nseaSeb/search_ash

Showing Posts 1 to 2

vicb335

vicb335

Oh wow! Pretty nice!

nseaSeb

nseaSeb OP

0.7.0 published

Added

  • counts_by/4 numeric ranges — a :montant/amount-like column can now be faceted with ranges: [0, 100, 500] (at least two strictly increasing breakpoints), counted per half-open interval {low, high} (a value equal to a breakpoint falls in the upper interval). Completes the facet kinds started in 0.6.0 (scalar, array, date bucket). Ranges are always caller-declared, never discovered from data — unlike the other kinds’ :values discovery, there is nothing to read to find them, so no memory/latency cost on a broad query. Mutually exclusive with :bucket and :values.
— All posts loaded —

Where Next? Top

Trending in News & Updates Top

Jskalc
LiveVue v1.0 released After four release candidates and a lot of community feedback, LiveVue 1.0 is stable :tada: I’ve built a dedicated...
New
bartblast
Hologram v0.12 is out! This one is for the big apps. Evo Store, Hologram’s Performance Sponsor, has an app with over 9,000 Elixir modules...
New
zachdaniel
Your standard application generally only tracks what is true right now. Updates overwrite previous data, and asking questions about the p...
New
woylie
<span class="hashtag-icon-placeholder"></span>let-me 3.0.4 has been released. Changed Log the policy module and the check module in the...
New
woylie
Flop Phoenix 0.27.0 has been released. Changed Require Flop 0.29.0, which turns Flop.Schema from a protocol into a behaviour. Determin...
New
kyroco
VitalAIze 0.3.0 is out. It puts your other machines on your team on the board, live. I changed the architecture and am using gRPC to stre...
New
webofbits
Aludel 0.8.0 is now available on GitHub and Hex. This release adds typed_judge assertions for evaluations that need deterministic, struc...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews