Per una ricerca testuale seria non serve subito Elasticsearch: PostgreSQL ha il full-text search integrato, con ranking e gestione delle lingue. Rails lo espone con eleganza.

class Launch < ApplicationRecord
  # con la gem pg_search
  include PgSearch::Model
  pg_search_scope :search,
    against: { name: "A", description: "B" }, # pesi diversi
    using: { tsearch: { prefix: true } }
end

Launch.search("falcon")   # ordinati per rilevanza

Sotto il cofano, Postgres trasforma il testo in tsvector (parole normalizzate) e la query in tsquery, poi le confronta. I pesi (name conta più di description) governano il ranking, e prefix: true fa trovare "fal" dentro "falcon".

Il vantaggio: nessun servizio esterno da mantenere, i dati restano nel tuo database, e per la maggior parte delle app la qualità è più che sufficiente. Aggiungi un indice GIN sulla colonna tsvector e resta veloce anche su tabelle grandi.

Elasticsearch è potente, ma spesso è un cannone per uccidere una mosca. Parti da Postgres: la ricerca del tuo Launch Tracker probabilmente non chiede di più.