Accrue.Billing.Search (accrue v1.3.0)

Copy Markdown View Source

Provides native PostgreSQL trigram similarity search for core billing objects.

Utilizes the pg_trgm extension and specific GIN indices for fast, fuzzy text matching without full table scans. Results are ranked by similarity (GREATEST(similarity(...)) for multi-column searches).

Summary

Functions

search_customers(query \\ Customer, term)

@spec search_customers(Ecto.Queryable.t(), String.t()) :: Ecto.Query.t()

Searches Accrue.Billing.Customer by email or name.

search_invoices(query \\ Invoice, term)

@spec search_invoices(Ecto.Queryable.t(), String.t()) :: Ecto.Query.t()

Searches Accrue.Billing.Invoice by processor_id or number.

search_subscriptions(query \\ Subscription, term)

@spec search_subscriptions(Ecto.Queryable.t(), String.t()) :: Ecto.Query.t()

Searches Accrue.Billing.Subscription by processor_id.