Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Oct 14:06

Added

  • Full-text search over ActiveRecord with SQLite FTS5: the fts5_scope DSL, the
    create_fts5_index migration helper (round-trips through schema.rb), a query
    sanitizer that makes untrusted input safe, BM25 relevance ranking via
    order_by_rank, model-owned callback sync, and Model.reindex plus a rake task.
  • Vector search with sqlite-vec through the
    neighbor gem: the vec_scope DSL, the
    create_vec_index migration helper, an app-registered SqliteSearch.embedder,
    async embedding through SqliteSearch::EmbedJob (with a sync: :inline option
    and a configurable queue), and Model.reembed plus a rake task.
  • Hybrid search: hybrid_scope fuses an fts5_scope and a vec_scope with
    Reciprocal Rank Fusion, with an optional, degradable SqliteSearch.reranker.
  • Exact pre-filtering by chaining: conditions placed before .search/.semantic
    (for example Post.where(tenant_id: 5).search("...")) push into both arms.
  • Rails generators for the FTS5 and vec migrations.
  • Derived text: source: and watch: on fts5_scope and vec_scope index text
    computed in Ruby and resync when the watched attributes change.
  • vec_scope ..., sync: :manual with record.reembed for apps that run their own
    embedding pipeline.
  • Relevance thresholds: order_by_rank(threshold:), and per-arm
    fts5_threshold: / vec_threshold: on hybrid scopes.
  • A reranker can return [record, score] pairs, which set each result's
    <name>_score to the reranker's score.