Module: ParadeDB
- Defined in:
- lib/parade_db.rb,
lib/parade_db/index.rb,
lib/parade_db/model.rb,
lib/parade_db/query.rb,
lib/parade_db/errors.rb,
lib/parade_db/vector.rb,
lib/parade_db/version.rb,
lib/parade_db/proximity.rb,
lib/parade_db/tokenizer.rb,
lib/parade_db/diagnostics.rb,
lib/parade_db/aggregations.rb,
lib/parade_db/query_builder.rb,
lib/parade_db/tokenizer_sql.rb,
lib/parade_db/search_methods.rb,
lib/parade_db/migration_helpers.rb,
lib/generators/parade_db/index/index_generator.rb,
lib/parade_db/migration_helpers.rb,
lib/parade_db/migration_helpers.rb,
lib/parade_db/migration_helpers.rb
Defined Under Namespace
Modules: Aggregations, CommandRecorderPatch, Diagnostics, Errors, Generators, MigrationDSL, MigrationHelpers, Model, Proximity, Query, SchemaDumperPatch, SearchMethods, TokenizerSQL
Classes: Index, Tokenizer, Vector
Constant Summary
collapse
- FacetQueryError =
Errors::FacetQueryError
- InvalidIndexDefinition =
Errors::InvalidIndexDefinition
- UnsupportedAdapterError =
Errors::UnsupportedAdapterError
- MethodCollisionError =
Errors::MethodCollisionError
- FieldNotIndexed =
Errors::FieldNotIndexed
- IndexClassNotFoundError =
Errors::IndexClassNotFoundError
- IndexDriftError =
Errors::IndexDriftError
- VERSION =
"0.12.0"
Class Method Summary
collapse
-
.boost(value, factor) ⇒ Object
-
.constant(value, score) ⇒ Object
-
.ensure_postgresql_adapter!(connection, context:) ⇒ Object
-
.fuzzy(value, distance, prefix: nil, transposition_cost_one: nil) ⇒ Object
-
.index_validation_mode ⇒ Object
-
.index_validation_mode=(mode) ⇒ Object
-
.paradedb_index_segments(index, connection: ActiveRecord::Base.connection) ⇒ Object
-
.paradedb_indexes(connection: ActiveRecord::Base.connection) ⇒ Object
-
.paradedb_verify_all_indexes(**options) ⇒ Object
-
.paradedb_verify_index(index, **options) ⇒ Object
-
.proximity(*terms) ⇒ Object
-
.regex_term(pattern, max_expansions: nil) ⇒ Object
-
.slop(value, distance) ⇒ Object
-
.tokenize(value, tokenizer) ⇒ Object
Class Method Details
.boost(value, factor) ⇒ Object
88
89
90
|
# File 'lib/parade_db.rb', line 88
def boost(value, factor)
QueryBuilder.new.boost(value, factor)
end
|
.constant(value, score) ⇒ Object
92
93
94
|
# File 'lib/parade_db.rb', line 92
def constant(value, score)
QueryBuilder.new.constant(value, score)
end
|
.ensure_postgresql_adapter!(connection, context:) ⇒ Object
71
72
73
74
75
76
77
78
|
# File 'lib/parade_db.rb', line 71
def ensure_postgresql_adapter!(connection, context:)
adapter_name = connection.adapter_name.to_s
normalized = adapter_name.downcase
return if normalized.include?("postgres") || normalized.include?("postgis")
raise Errors::UnsupportedAdapterError,
"#{context} only supports PostgreSQL. Current adapter: #{adapter_name.inspect}"
end
|
.fuzzy(value, distance, prefix: nil, transposition_cost_one: nil) ⇒ Object
96
97
98
|
# File 'lib/parade_db.rb', line 96
def fuzzy(value, distance, prefix: nil, transposition_cost_one: nil)
QueryBuilder.new.fuzzy(value, distance, prefix: prefix, transposition_cost_one: transposition_cost_one)
end
|
.index_validation_mode ⇒ Object
44
45
46
|
# File 'lib/parade_db.rb', line 44
def index_validation_mode
@index_validation_mode ||= :off
end
|
.index_validation_mode=(mode) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/parade_db.rb', line 48
def index_validation_mode=(mode)
valid_modes = %i[warn raise off]
normalized =
case mode
when Symbol
mode
when String
stripped = mode.strip
raise ArgumentError, "index_validation_mode must be one of: #{valid_modes.join(', ')}" if stripped.empty?
stripped.to_sym
else
raise ArgumentError, "index_validation_mode must be one of: #{valid_modes.join(', ')}"
end
if valid_modes.include?(normalized)
@index_validation_mode = normalized
return
end
raise ArgumentError, "index_validation_mode must be one of: #{valid_modes.join(', ')}"
end
|
.paradedb_index_segments(index, connection: ActiveRecord::Base.connection) ⇒ Object
32
33
34
|
# File 'lib/parade_db.rb', line 32
def paradedb_index_segments(index, connection: ActiveRecord::Base.connection)
Diagnostics.index_segments(index, connection: connection)
end
|
.paradedb_indexes(connection: ActiveRecord::Base.connection) ⇒ Object
28
29
30
|
# File 'lib/parade_db.rb', line 28
def paradedb_indexes(connection: ActiveRecord::Base.connection)
Diagnostics.indexes(connection: connection)
end
|
.paradedb_verify_all_indexes(**options) ⇒ Object
.paradedb_verify_index(index, **options) ⇒ Object
36
37
38
|
# File 'lib/parade_db.rb', line 36
def paradedb_verify_index(index, **options)
Diagnostics.verify_index(index, **options)
end
|
.proximity(*terms) ⇒ Object
84
85
86
|
# File 'lib/parade_db.rb', line 84
def proximity(*terms)
Proximity::Clause.new(*terms)
end
|
.regex_term(pattern, max_expansions: nil) ⇒ Object
80
81
82
|
# File 'lib/parade_db.rb', line 80
def regex_term(pattern, max_expansions: nil)
Proximity::RegexTerm.new(pattern, max_expansions: max_expansions)
end
|
.slop(value, distance) ⇒ Object
100
101
102
|
# File 'lib/parade_db.rb', line 100
def slop(value, distance)
QueryBuilder.new.slop(value, distance)
end
|
.tokenize(value, tokenizer) ⇒ Object
104
105
106
|
# File 'lib/parade_db.rb', line 104
def tokenize(value, tokenizer)
QueryBuilder.new.tokenize(value, tokenizer)
end
|