Class: KairosMcp::VectorSearch::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/kairos_mcp/vector_search/base.rb

Overview

Abstract base class for vector search implementations

Provides a common interface for both semantic search (with RAG) and fallback search (regex-based).

Direct Known Subclasses

FallbackSearch, SemanticSearch

Instance Method Summary collapse

Instance Method Details

#add(id, text, metadata: {}) ⇒ Boolean

Add a document to the index

Parameters:

  • id (String, Symbol)

    Document identifier

  • text (String)

    Document text content

  • metadata (Hash) (defaults to: {})

    Optional metadata

Returns:

  • (Boolean)

    Success status

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/kairos_mcp/vector_search/base.rb', line 17

def add(id, text, metadata: {})
  raise NotImplementedError, "#{self.class} must implement #add"
end

#countInteger

Get the number of documents in the index

Returns:

  • (Integer)

Raises:

  • (NotImplementedError)


70
71
72
# File 'lib/kairos_mcp/vector_search/base.rb', line 70

def count
  raise NotImplementedError, "#{self.class} must implement #count"
end

#loadBoolean

Load the index from persistent storage

Returns:

  • (Boolean)

    Success status

Raises:

  • (NotImplementedError)


56
57
58
# File 'lib/kairos_mcp/vector_search/base.rb', line 56

def load
  raise NotImplementedError, "#{self.class} must implement #load"
end

#ready?Boolean

Check if the index exists and is loaded

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


63
64
65
# File 'lib/kairos_mcp/vector_search/base.rb', line 63

def ready?
  raise NotImplementedError, "#{self.class} must implement #ready?"
end

#rebuild(documents) ⇒ Boolean

Rebuild the entire index from documents

Parameters:

  • documents (Array<Hash>)

    Array of text:, metadata:

Returns:

  • (Boolean)

    Success status

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/kairos_mcp/vector_search/base.rb', line 42

def rebuild(documents)
  raise NotImplementedError, "#{self.class} must implement #rebuild"
end

#remove(id) ⇒ Boolean

Remove a document from the index

Parameters:

  • id (String, Symbol)

    Document identifier

Returns:

  • (Boolean)

    Success status

Raises:

  • (NotImplementedError)


25
26
27
# File 'lib/kairos_mcp/vector_search/base.rb', line 25

def remove(id)
  raise NotImplementedError, "#{self.class} must implement #remove"
end

#saveBoolean

Save the index to persistent storage

Returns:

  • (Boolean)

    Success status

Raises:

  • (NotImplementedError)


49
50
51
# File 'lib/kairos_mcp/vector_search/base.rb', line 49

def save
  raise NotImplementedError, "#{self.class} must implement #save"
end

#search(query, k: 5) ⇒ Array<Hash>

Search for similar documents

Parameters:

  • query (String)

    Search query

  • k (Integer) (defaults to: 5)

    Number of results to return

Returns:

  • (Array<Hash>)

    Array of score:, metadata:

Raises:

  • (NotImplementedError)


34
35
36
# File 'lib/kairos_mcp/vector_search/base.rb', line 34

def search(query, k: 5)
  raise NotImplementedError, "#{self.class} must implement #search"
end

#semantic?Boolean

Check if this implementation supports semantic search

Returns:

  • (Boolean)


77
78
79
# File 'lib/kairos_mcp/vector_search/base.rb', line 77

def semantic?
  false
end