Clase: Mongo::SearchIndex::View

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Enumerable, colección::asistentes, Retryable
Definido en:
lib/mongo/search_index/view.rb

Overview

Una clase que representa una vista de índices de búsqueda.

Resumen de atributos de la instancia colapsar

Resumen del método de instancia colapsar

Métodos incluidos de Collection::Helpers

#do_drop

Métodos incluidos de Retryable

#read_worker, #select_server, #with_overload_retry, #write_worker

Detalles del Constructor

#initialize(colección, options = {}) ⇒ Ver

Crear la nueva vista del índice de búsqueda.

Parámetros:

  • Colección (colección)

    La colección.

  • opciones (encriptada) (por defecto: {})

    Las opciones que configuran el comportamiento de la vista.

Opciones Hash (options):

  • :id (string)

    El ID de índice específico a query (opcional)

  • nombre (string)

    El nombre del índice específico a query (opcional)

  • :aggregate (encriptada)

    El hash de opciones para enviar al comando de agregado al consultar los índices disponibles.

Aumenta:

  • (ArgumentError)


36
37
38
39
40
41
42
43
44
45
# Archivo 'lib/mongo/search_index/view.rb', línea 36

def inicializar(Colección, opciones = {})
  @colección = Colección
  @requested_index_id = opciones[:id]
  @requested_index_name = opciones[nombre]
  @aggregate_options = opciones[:aggregate] || {}

  return si @aggregate_options.is_a?(encriptada)

  propagar ArgumentError, "La opción :aggregate debe ser una Hash (se obtuvo una #{@aggregate_options.clase})"
end

Detalles de atributo de instancias

#aggregate_optionsHash (solo lectura)

Devuelve el hash de opciones que se usará para el comando de agregación al consultar los índices disponibles.

Devuelve:

  • (encriptada)

    el hash de opciones que se utilizarán para el comando de agregación al consultar los índices disponibles.



23
24
25
# Archivo 'lib/mongo/search_index/view.rb', línea 23

def aggregate_options
  @aggregate_options
end

#colecciónMongo::Collection (solo lectura)

Devuelve la colección a la que pertenece esta vista.

Devuelve:



13
14
15
# Archivo 'lib/mongo/search_index/view.rb', línea 13

def Colección
  @colección
end

#requested_index_idnil | String (solo lectura)

Devuelve el id del índice a query.

Devuelve:

  • (nil | String)

    el ID de índice para query



16
17
18
# Archivo 'lib/mongo/search_index/view.rb', línea 16

def requested_index_id
  @requested_index_id
end

#requested_index_namenil | String (solo lectura)

Devuelve el nombre del índice para query.

Devuelve:

  • (nil | String)

    el nombre del índice a query



19
20
21
# Archivo 'lib/mongo/search_index/view.rb', línea 19

def requested_index_name
  @requested_index_name
end

Detalles del método de instancia

#create_many(índices) ⇒ arreglo<String>

Crear múltiples índices de búsqueda con un solo comando.

Parámetros:

  • indexes (arreglo<Hash>)

    La descripción de los índices que se crearán. Cada elemento de la lista debe ser un hash con una clave de definición, una clave de nombre opcional y una clave de tipo opcional. La clave del tipo debe ser una de 'search' o 'vectorSearch'. El valor por defecto es 'buscar'.

Devuelve:

  • (arreglo<String>)

    los nombres de los nuevos índices de búsqueda.



71
72
73
74
75
76
77
78
79
# Archivo 'lib/mongo/search_index/view.rb', línea 71

def create_many(indexes)
  especificación = especificación_with(indexes: indexes.map { |v| validate_search_index!(v) })
  Operación = Operación::CreateSearchIndexes.Nuevo(especificación)
  context = execution_context
  trazador.trace_operation(Operación, context, op_name: 'createSearchIndexes') hacer
    Resultado = Operación.ejecutar(siguiente_principal, context: context)
    Resultado.primero['indexesCreated'].map { |índice| índice['nombre'] }
  end
end

#create_one(definición, name: nil, type: 'búsqueda') ⇒ String

Crea un único índice de búsqueda con la definición dada. Si se proporciona el nombre, el nuevo índice recibirá ese nombre.

Parámetros:

  • Definición (encriptada)

    La definición del índice de búsqueda.

  • Nombre (nil | String) (valor por defecto: nil)

    El nombre que se debe dar al nuevo índice de búsqueda.

  • tipo (string) (por defecto: 'buscar')

    El tipo del índice de búsqueda. Los valores posibles son 'search' y 'vectorSearch'. El valor por defecto es 'buscar'.

Devuelve:

  • (string)

    el nombre del nuevo índice de búsqueda.



56
57
58
59
60
61
# Archivo 'lib/mongo/search_index/view.rb', línea 56

def create_one(Definición, nombre: nulo, tipo: 'búsqueda')
  especificación = { definición: Definición, tipo: tipo }.tocar hacer |sp|
    sp[nombre] = Nombre a menos que Nombre.nil?
  end
  create_many([ especificación ]).primero
end

#drop_one(id: nil, name: nil) ⇒ Mongo::operación::Result | false

Descarta el índice de búsqueda con el ID o nombre dado. Debe especificarse uno u otro, pero no ambos.

Parámetros:

  • ID (string) (valor por defecto: nil)

    el ID del índice a descartar

  • Nombre (string) (valor por defecto: nil)

    el nombre del índice a descartar

Devuelve:



89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Archivo 'lib/mongo/search_index/view.rb', línea 89

def drop_one(ID: nulo, nombre: nulo)
  validate_id_or_name!(ID, Nombre)

  especificación = especificación_with(index_id: ID, index_name: Nombre)
  op = Operación::DropSearchIndex.Nuevo(especificación)
  context = execution_context

  trazador.trace_operation(op, context, op_name: 'dropSearchIndex') hacer
    # según las especificaciones:
    # Los controladores DEBEN suprimir los errores NamespaceNotFound para el
    # ``dropSearchIndex`` asistente.  Las operaciones de eliminación deben ser idempotentes.
    do_drop(op, nulo, context)
  end
end

#each(&block) ⇒ self | Enumerator

Iterar sobre los índices de búsqueda.

Parámetros:

  • bloque (Proc)

    si se proporciona, cada índice de búsqueda será cedido al bloque.

Devuelve:

  • (self | Enumerador)

    si se proporciona un bloque, self se devuelve. De lo contrario, se devolverá un enumerador.



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# Archivo 'lib/mongo/search_index/view.rb', línea 111

def cada(&bloque)
  @result ||= begin
    especificación = {}.tocar hacer |s|
      s[:id] = requested_index_id si requested_index_id
      s[nombre] = requested_index_name si requested_index_name
    end

    Colección.con(read_concern: {}).Agregar(
      [ { '$listSearchIndexes' => especificación } ],
      aggregate_options
    )
  end

  return @result.to_enum a menos que bloque

  @result.cada(&bloque)
  sí mismo
end

#empty?true | false

Interroga si el índice de búsqueda enumerable está vacío.

Devuelve:

  • (true | false)

    si el enumerable está vacío o no.



156
157
158
# Archivo 'lib/mongo/search_index/view.rb', línea 156

def ¿vacío?
  count.zero?
end

#update_one(definition, id: nil, name: nil) ⇒ Mongo::operación::Result

Actualiza el índice de búsqueda con el id o nombre dado. Se debe proporcionar uno u otro, pero no ambos.

Parámetros:

  • Definición (encriptada)

    la definición para reemplazar el índice de búsqueda dado por.

  • ID (nil | String) (valor por defecto: nil)

    el id del índice de búsqueda a actualizar

  • Nombre (nil | String) (valor por defecto: nil)

    el nombre del índice de búsqueda a actualizar

Devuelve:



139
140
141
142
143
144
145
146
147
148
# Archivo 'lib/mongo/search_index/view.rb', línea 139

def update_one(Definición, ID: nulo, nombre: nulo)
  validate_id_or_name!(ID, Nombre)

  especificación = especificación_with(index_id: ID, index_name: Nombre, index: Definición)
  op = Operación::UpdateSearchIndex.Nuevo(especificación)
  context = execution_context
  trazador.trace_operation(op, context, op_name: 'updateSearchIndex') hacer
    op.ejecutar(siguiente_principal, context: context)
  end
end