Módulo: Mongoid::SearchIndexable::ClassMethods

Definido en:
lib/mongoid/search_indexable.rb

Overview

Implementaciones para los métodos de nivel de clase de la característica.

Colapso del resumen del método de instancia

Detalles del método de instancia

#crear_índices_de_búsquedaMatriz<String>

Solicitar la creación de todos los índices de búsqueda registrados. Tenga en cuenta que estos índices se crean de forma asíncrona y pueden tardar varios minutos en estar completamente disponibles.

Devuelve:

  • (Matriz<String>)

    Los nombres de los índices de búsqueda.



65
66
67
68
69
# Archivo 'lib/mongoid/search_indexable.rb', línea 65

def create_search_indexes
  return Si especificaciones del índice de búsqueda.¿vacío?

  Colección.search_indexes.crear_muchos(especificaciones del índice de búsqueda)
end

#remove_search_index(nombre: nil, id: nil) ⇒ Objeto

Elimina el índice de búsqueda especificado por el nombre o el ID. Se debe indicar el nombre o el ID, pero no ambos.

Parámetros:

  • Nombre (String | nil) (predeterminado: nulo)

    el nombre del índice a eliminar

  • ID. (String | nil) (predeterminado: nulo)

    el id del índice a eliminar



107
108
109
110
111
112
113
114
# Archivo 'lib/mongoid/search_indexable.rb', línea 107

def eliminar_índice_de_búsqueda(nombre: nulo, identificación: nulo)
  logger.información(
    "MONGOID: Eliminando el índice de búsqueda'#{name || id} ' " \
    "en la colección' #{collection.name} '."
  )

  collection.search_indexes.drop_one(name: name, id: id)
end

#remove_search_indexesObjeto

Nota:

Sería bueno si esto pudiera eliminar SÓLO los índices de búsqueda

Solicitar la eliminación de todos los índices de búsqueda registrados. Tenga en cuenta que estos índices se eliminan de forma asíncrona y pueden tardar varios minutos en eliminarse por completo.

que se han declarado en el modelo, pero dado que este puede no nombrar el índice, no podemos garantizar que conozcamos el nombre o el ID de los índices correspondientes. Sin embargo, es razonable suponer que la intención es que el modelo declare, uno a uno, todos los índices de búsqueda deseados, por lo que eliminarlos debería ser suficiente. Si es necesario eliminar un índice o un conjunto de índices específicos, considere usar search_indexes.each con remove_search_index.



128
129
130
131
132
# Archivo 'lib/mongoid/search_indexable.rb', línea 128

def eliminar_índices_de_búsqueda
  search_indexes.cada hacer |especulación|
    eliminar_índice_de_búsqueda identificación: especulación['id']
  end
end

#índice_de_búsqueda(nombre_o_defn, defn = nil) ⇒ Objeto

Agrega una definición de índice para las claves simples o compuestas proporcionadas.

Ejemplos:

Crear un índice básico.

class Person
  include Mongoid::Document
  field :name, type: String
  search_index({ ... })
  search_index :name_of_index, { ... }
end

Parámetros:

  • nombre_o_defn (Símbolo| Cadena | Hash)

    O bien el nombre del índice a definir, o bien la definición del índice.

  • definición (Hash) (predeterminado: nulo)

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



147
148
149
150
151
152
153
# Archivo 'lib/mongoid/search_indexable.rb', línea 147

def search_index(nombre_o_defn, definición = nulo)
  Nombre = nombre_o_defn
  Nombre, definición = nulo, Nombre Si Nombre.is_a?(Picadillo)

  especulación = { definición: definición }.grifo { |s| s[:nombre] = Nombre.a_s Si Nombre }
  especificaciones del índice de búsqueda.Push(especulación)
end

#índices_de_búsqueda(opciones = {}) ⇒ Objeto

Un método conveniente para consultar los índices de búsqueda disponibles en la colección del modelo actual.

Parámetros:

  • opciones (Hash) (predeterminado: {})

    las opciones para pasar a la consulta del índice de búsqueda.

Opciones Hash(opciones):

  • :id (Cadena)

    El id del índice específico a consultar (opcional)

  • :nombre (Cadena)

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

  • :aggregate (Hash)

    El hash de opciones que se pasará al comando agregado (opcional)



98
99
100
# Archivo 'lib/mongoid/search_indexable.rb', línea 98

def search_indexes(opciones = {})
  Colección.search_indexes(opciones)
end

#wait_for_search_indexes(nombres, 5 intervalo:) {|SearchIndexable::Status|... } ⇒ Objeto

Espera a que se creen los índices de búsqueda nombrados.

Parámetros:

  • nombres (Matriz<String>)

    la lista de nombres de índices a esperar

  • interval (Entero) 5(predeterminado:)

    la cantidad de segundos a esperar antes de sondear nuevamente (solo se usa cuando se proporciona una devolución de progreso).

Rendimientos:

  • (SearchIndexable::Status)

    el objeto de estado



78
79
80
81
82
83
84
85
86
# Archivo 'lib/mongoid/search_indexable.rb', línea 78

def esperar_a_los_índices_de_búsqueda(nombres, interval: 5)
  bucle hacer
    Estado = Estado.Nuevo(get_indexes(nombres))
    rendimiento Estado Si ¿bloque_dado?
    break Si Estado.¿listo?

    sueño interval
  end
end