fix(captain): require iterative vector scans

This commit is contained in:
aakashb95
2026-07-14 23:17:34 +05:30
parent 3857ff67b4
commit f22e66b869
@@ -3,8 +3,11 @@ class ReplaceCaptainAssistantResponseEmbeddingIndexWithCosine < ActiveRecord::Mi
OLD_INDEX_NAME = 'vector_idx_knowledge_entries_embedding'.freeze
NEW_INDEX_NAME = 'vector_idx_captain_assistant_responses_embedding_cosine'.freeze
MINIMUM_PGVECTOR_VERSION = Gem::Version.new('0.8.0')
def up
ensure_iterative_scans_supported!
add_index :captain_assistant_responses,
:embedding,
using: :ivfflat,
@@ -23,4 +26,13 @@ class ReplaceCaptainAssistantResponseEmbeddingIndexWithCosine < ActiveRecord::Mi
algorithm: :concurrently
remove_index :captain_assistant_responses, name: NEW_INDEX_NAME, algorithm: :concurrently
end
private
def ensure_iterative_scans_supported!
installed_version = Gem::Version.new(select_value("SELECT extversion FROM pg_extension WHERE extname = 'vector'"))
return if installed_version >= MINIMUM_PGVECTOR_VERSION
raise StandardError, "pgvector #{MINIMUM_PGVECTOR_VERSION} or newer is required for filtered FAQ search"
end
end