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)


25
26
27
# File 'lib/couchbase/management/search_index_manager.rb', line 25

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:



172
173
174
# File 'lib/couchbase/management/search_index_manager.rb', line 172

def allow_querying(index_name, options = AllowQueryingOptions.new)
  @backend.search_index_allow_querying(nil, nil, 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:



224
225
226
227
# File 'lib/couchbase/management/search_index_manager.rb', line 224

def analyze_document(index_name, document, options = AnalyzeDocumentOptions.new)
  res = @backend.search_index_analyze_document(nil, nil, 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:



185
186
187
# File 'lib/couchbase/management/search_index_manager.rb', line 185

def disallow_querying(index_name, options = DisallowQueryingOptions.new)
  @backend.search_index_disallow_querying(nil, nil, 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:



88
89
90
# File 'lib/couchbase/management/search_index_manager.rb', line 88

def drop_index(index_name, options = DropIndexOptions.new)
  @backend.search_index_drop(nil, nil, 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:



198
199
200
# File 'lib/couchbase/management/search_index_manager.rb', line 198

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

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

Fetches all indexes from the server

Parameters:

Returns:



48
49
50
51
# File 'lib/couchbase/management/search_index_manager.rb', line 48

def get_all_indexes(options = GetAllIndexesOptions.new)
  res = @backend.search_index_get_all(nil, nil, options.timeout)
  res[:indexes].map { |idx| self.class.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:



38
39
40
41
# File 'lib/couchbase/management/search_index_manager.rb', line 38

def get_index(index_name, options = GetIndexOptions.new)
  res = @backend.search_index_get(nil, nil, index_name, options.timeout)
  self.class.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:

Stability:

  • Uncommitted: This API may change in the future.



117
118
119
120
# File 'lib/couchbase/management/search_index_manager.rb', line 117

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:



101
102
103
104
# File 'lib/couchbase/management/search_index_manager.rb', line 101

def get_indexed_documents_count(index_name, options = GetIndexedDocumentsCountOptions.new)
  res = @backend.search_index_get_documents_count(nil, nil, 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)

Stability:

  • Uncommitted: This API may change in the future.



132
133
134
135
# File 'lib/couchbase/management/search_index_manager.rb', line 132

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:



146
147
148
# File 'lib/couchbase/management/search_index_manager.rb', line 146

def pause_ingest(index_name, options = PauseIngestOptions.new)
  @backend.search_index_pause_ingest(nil, nil, 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:



159
160
161
# File 'lib/couchbase/management/search_index_manager.rb', line 159

def resume_ingest(index_name, options = ResumeIngestOptions.new)
  @backend.search_index_resume_ingest(nil, nil, 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:



211
212
213
# File 'lib/couchbase/management/search_index_manager.rb', line 211

def unfreeze_plan(index_name, options = UnfreezePlanOptions.new)
  @backend.search_index_unfreeze_plan(nil, nil, 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



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

def upsert_index(index_definition, options = UpsertIndexOptions.new)
  @backend.search_index_upsert(
    nil,
    nil,
    {
      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