Class: Couchbase::Management::SearchIndexManager

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase/management/search_index_manager.rb

Defined Under Namespace

Classes: AllowQueryingOptions, AnalyzeDocumentOptions, DisallowQueryingOptions, DropIndexOptions, FreezePlanOptions, GetAllIndexesOptions, GetIndexOptions, GetIndexStatsOptions, GetIndexedDocumentsCountOptions, PauseIngestOptions, ResumeIngestOptions, UnfreezePlanOptions, UpsertIndexOptions

Instance Method Summary collapse

Constructor Details

#initialize(backend) ⇒ SearchIndexManager

Returns a new instance of SearchIndexManager.

Parameters:

  • backend (Couchbase::Backend)


23
24
25
# File 'lib/couchbase/management/search_index_manager.rb', line 23

def initialize(backend)
  @backend = backend
end

Instance Method Details

#allow_querying(index_name, options = AllowQueryingOptions.new) ⇒ Object

Allows querying against the index

Parameters:

  • index_name (String)

    name of the index

  • options (AllowQueryingOptions) (defaults to: AllowQueryingOptions.new)

Returns:

  • void

Raises:



168
169
170
# File 'lib/couchbase/management/search_index_manager.rb', line 168

def allow_querying(index_name, options = AllowQueryingOptions.new)
  @backend.search_index_allow_querying(index_name, options.timeout)
end

#analyze_document(index_name, document, options = AnalyzeDocumentOptions.new) ⇒ Array<Hash>

Allows to see how a document is analyzed against a specific index

Parameters:

  • index_name (String)

    name of the index

  • document (Hash)

    the document to be analyzed

Returns:

  • (Array<Hash>)

Raises:



220
221
222
223
# File 'lib/couchbase/management/search_index_manager.rb', line 220

def analyze_document(index_name, document, options = AnalyzeDocumentOptions.new)
  res = @backend.search_index_analyze_document(index_name, JSON.generate(document), options.timeout)
  JSON.parse(res[:analysis])
end

#disallow_querying(index_name, options = DisallowQueryingOptions.new) ⇒ Object

Disallows querying against the index

Parameters:

  • index_name (String)

    name of the index

  • options (DisallowQueryingOptions) (defaults to: DisallowQueryingOptions.new)

Returns:

  • void

Raises:



181
182
183
# File 'lib/couchbase/management/search_index_manager.rb', line 181

def disallow_querying(index_name, options = DisallowQueryingOptions.new)
  @backend.search_index_disallow_querying(index_name, options.timeout)
end

#drop_index(index_name, options = DropIndexOptions.new) ⇒ Object

Drops the index

Parameters:

  • index_name (String)

    name of the index

  • options (DropIndexOptions) (defaults to: DropIndexOptions.new)

Returns:

  • void

Raises:



84
85
86
# File 'lib/couchbase/management/search_index_manager.rb', line 84

def drop_index(index_name, options = DropIndexOptions.new)
  @backend.search_index_drop(index_name, options.timeout)
end

#freeze_plan(index_name, options = FreezePlanOptions.new) ⇒ Object

Freeze the assignment of index partitions to nodes

Parameters:

  • index_name (String)

    name of the index

  • options (FreezePlanOptions) (defaults to: FreezePlanOptions.new)

Returns:

  • void

Raises:



194
195
196
# File 'lib/couchbase/management/search_index_manager.rb', line 194

def freeze_plan(index_name, options = FreezePlanOptions.new)
  @backend.search_index_freeze_plan(index_name, options.timeout)
end

#get_all_indexes(options = GetAllIndexesOptions.new) ⇒ Array<SearchIndex>

Fetches all indexes from the server

Parameters:

Returns:



46
47
48
49
# File 'lib/couchbase/management/search_index_manager.rb', line 46

def get_all_indexes(options = GetAllIndexesOptions.new)
  res = @backend.search_index_get_all(options.timeout)
  res[:indexes].map { |idx| extract_search_index(idx) }
end

#get_index(index_name, options = GetIndexOptions.new) ⇒ SearchIndex

Fetches an index from the server if it exists

Parameters:

  • index_name (String)

    name of the index

  • options (GetIndexOptions) (defaults to: GetIndexOptions.new)

Returns:

Raises:



36
37
38
39
# File 'lib/couchbase/management/search_index_manager.rb', line 36

def get_index(index_name, options = GetIndexOptions.new)
  res = @backend.search_index_get(index_name, options.timeout)
  extract_search_index(res)
end

#get_index_stats(index_name, options = GetIndexStatsOptions.new) ⇒ Integer

Retrieves metrics, timings and counters for a given index

Parameters:

  • index_name (String)

    name of the index

  • options (GetIndexStatsOptions) (defaults to: GetIndexStatsOptions.new)

Returns:

  • (Integer)

Raises:



113
114
115
116
# File 'lib/couchbase/management/search_index_manager.rb', line 113

def get_index_stats(index_name, options = GetIndexStatsOptions.new)
  res = @backend.search_index_get_stats(index_name, options.timeout)
  JSON.parse(res)
end

#get_indexed_documents_count(index_name, options = GetIndexedDocumentsCountOptions.new) ⇒ Integer

Retrieves the number of documents that have been indexed for an index

Parameters:

Returns:

  • (Integer)

Raises:



97
98
99
100
# File 'lib/couchbase/management/search_index_manager.rb', line 97

def get_indexed_documents_count(index_name, options = GetIndexedDocumentsCountOptions.new)
  res = @backend.search_index_get_documents_count(index_name, options.timeout)
  res[:count]
end

#get_stats(options = GetIndexStatsOptions.new) ⇒ Integer

Retrieves statistics on search service. Information is provided on documents, partition indexes, mutations, compactions, queries, and more.

Parameters:

Returns:

  • (Integer)

Raises:

  • (ArgumentError)


128
129
130
131
# File 'lib/couchbase/management/search_index_manager.rb', line 128

def get_stats(options = GetIndexStatsOptions.new)
  res = @backend.search_get_stats(options.timeout)
  JSON.parse(res)
end

#pause_ingest(index_name, options = PauseIngestOptions.new) ⇒ Object

Pauses updates and maintenance for the index

Parameters:

  • index_name (String)

    name of the index

  • options (PauseIngestOptions) (defaults to: PauseIngestOptions.new)

Returns:

  • void

Raises:



142
143
144
# File 'lib/couchbase/management/search_index_manager.rb', line 142

def pause_ingest(index_name, options = PauseIngestOptions.new)
  @backend.search_index_pause_ingest(index_name, options.timeout)
end

#resume_ingest(index_name, options = ResumeIngestOptions.new) ⇒ Object

Resumes updates and maintenance for an index

Parameters:

  • index_name (String)

    name of the index

  • options (ResumeIngestOptions) (defaults to: ResumeIngestOptions.new)

Returns:

  • void

Raises:



155
156
157
# File 'lib/couchbase/management/search_index_manager.rb', line 155

def resume_ingest(index_name, options = ResumeIngestOptions.new)
  @backend.search_index_resume_ingest(index_name, options.timeout)
end

#unfreeze_plan(index_name, options = UnfreezePlanOptions.new) ⇒ Object

Unfreeze the assignment of index partitions to nodes

Parameters:

  • index_name (String)

    name of the index

  • options (UnfreezePlanOptions) (defaults to: UnfreezePlanOptions.new)

Returns:

  • void

Raises:



207
208
209
# File 'lib/couchbase/management/search_index_manager.rb', line 207

def unfreeze_plan(index_name, options = UnfreezePlanOptions.new)
  @backend.search_index_unfreeze_plan(index_name, options.timeout)
end

#upsert_index(index_definition, options = UpsertIndexOptions.new) ⇒ Object

Creates or updates the index

Parameters:

Returns:

  • void

Raises:

  • (ArgumentError)

    if name, type or source_type is empty



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/couchbase/management/search_index_manager.rb', line 59

def upsert_index(index_definition, options = UpsertIndexOptions.new)
  @backend.search_index_upsert(
    {
      name: index_definition.name,
      type: index_definition.type,
      uuid: index_definition.uuid,
      params: (JSON.generate(index_definition.params) if index_definition.params),
      source_name: index_definition.source_name,
      source_type: index_definition.source_type,
      source_uuid: index_definition.source_uuid,
      source_params: (JSON.generate(index_definition.source_params) if index_definition.source_params),
      plan_params: (JSON.generate(index_definition.plan_params) if index_definition.plan_params),
    }, options.timeout
  )
end