sergio_101

sergio_101

I realize that this isn’t totally a phoenix/elixir question, but I am asking in the context of phoenix/elixir and the available libraries. This is out of my lane, but I am guessing some libraries use solid tech to solve the existing problem.

We have an app that is currently in production. In the end, it simply presents PDFs for clients to download. Each record has some metadata and some classifying data about the PDF.

There is a VERY rudimentary search; think LIKE %<term>% on a few data rows.

We want to expand this search ability to do something like:

  • Search more thoroughly across several columns.
  • Index the PDFs and search them too.

For example, the search for “a flock of blue herons” would yield results for records where indexed fields or text in indexed PDFs had text like the following:

  • Blue herons often flock on the edge of cliffs.
  • Herons are sometimes blue and often flock together.
  • A blue heron by himself is not a flock.

I am not looking for anything more than suggestions for existing elixir/phoenix libraries to use.

Any pointers would be appreciated.

Showing Posts 1 to 8

jeremyjh

jeremyjh

Have you taken a look at Postgres full text search? I keep meaning to in my application but I have not used it yet, though I used a similar feature in SQL Server many years ago. You can build a type of index that includes multiple columns, can do partial/fuzzy searches and it ranks results. This article seems decent: 10 Best PostgreSQL ETL Tools to Consider in 2026

I’m not sure about searching binary PDFs, you might have to extract text and store that to make it searchable by Postgres.

sergio_101

sergio_101 OP

OH! this looks good! let me take a look at this. thanks!

derpycoder

derpycoder

I am planning to include search, command pallete, from the get go. Here are some open source alternatives to Algolia:

dimitarvp

dimitarvp

Few weeks ago I’ve had to try and find a way to refine a similarity search with Nordic names and it was a disaster.

It seems that it’s mostly tailored to English vocabulary – or I didn’t find a way to fine-tune it better for another language, which is also a legit possibility since I gave it like 10 minutes – and we had absurd situations where a looser similarity search skipped a result where the first 2 characters matched and a tighter similarity search included them back… while exactly the opposite happened with the first 3 characters.

Train wreck. :003:

But again, let’s be fully objective: I was given a very short time to play with it so likely missed other possible knobs to turn.

D4no0

D4no0

I’ve also used it in a project, however as you said, the results sucked, you have mostly to write complete words for it to work. This was some years ago, and pg_trgm (or something similar) was the only option, however lately I saw that postgres added a lot more options, might be worth investigating.

Sebb

Sebb

— All posts loaded —

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New
dillonoconnor
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New
thiagogsr
** (ArgumentError) expected :max_attempts to be a positive integer, got: {:@, [line: 10, column: 19], [{:max_attempts, [line: 10, column:...
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
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
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
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews