Clase DirectoryReader
Lector de directorios es una implementación de Lector compuesto que puede leer índices en un Directorio.
Lector de directorios las instancias generalmente se construyen con una llamada a uno de los estáticos Open()
métodos, por ejemplo Directorio abierto).
Para mayor eficiencia, en esta API, los documentos a menudo se mencionan a través de numeros de documentos, enteros no negativos, cada uno de los cuales nombra un documento único en el índice. Estos números de documentos son efímeros; pueden cambiar a medida que se agregan y eliminan documentos de un índice. Por lo tanto, los clientes no deben confiar en que un documento determinado tenga el mismo número entre sesiones.
NOTA: Lector de índices las instancias son completamente seguras para subprocesos, lo que significa que varios subprocesos pueden llamar a cualquiera de sus métodos al mismo tiempo. Si su aplicación requiere sincronización externa, debe no sincronizar en el Lector de índices instancia; use sus propios objetos (que no sean de Lucene) en su lugar.
Herencia
Miembros heredados
Asamblea: DistribuidoLucene.Net.dll
Sintaxis
public abstract class DirectoryReader : BaseCompositeReader<AtomicReader>, IIdentifiableSurrogate
Constructores
Nombre | Descripción |
---|---|
DirectoryReader(Directorio, AtomicReader[]) | Experto: Construye un Lector de directorios en el dado |
LectorDirectorio(Cadena, NCachedirectorio, tipo) |
Terrenos
Nombre | Descripción |
---|---|
DEFAULT_TERMS_INDEX_DIVISOR | Término predeterminadoInfosIndexDivisor. |
directorio_m | El directorio de índice. |
Propiedades
Nombre | Descripción |
---|---|
Permitirresultadosparciales | Establecer el comportamiento del resultado en caso de clúster parcial |
Directorio | Devuelve el directorio en el que reside este índice. |
ÍndiceCommit | Experto: devolver el ÍndiceCommit que este lector ha abierto. @lucene.experimental |
Versión | Número de versión cuando esto Lector de índices fue abierto. Este método devuelve la versión registrada en la confirmación que abrió el lector. Esta versión se avanza cada vez que se realiza un cambio con Escritor de índices. |
Métodos
Nombre | Descripción |
---|---|
DoOpenIfChanged() | Implemente este método para apoyar OpenIfChanged (Lector de directorio). Si este lector no admite la reapertura, regrese |
DoOpenIfChanged (IndexCommit) | Implemente este método para apoyar Abrir si ha cambiado (DirectoryReader, IndexCommit). Si este lector no admite la reapertura desde un ÍndiceCommit, lanzar |
DoOpenIfChanged(IndexWriter, booleano) | Implemente este método para apoyar OpenIfChanged (DirectoryReader, IndexWriter, Boolean). Si este lector no admite la reapertura desde Escritor de índices, lanzar |
ÍndiceExiste(Directorio) | Returns |
Es actual() | Compruebe si se han producido nuevos cambios en el índice desde que se abrió este lector. Si este lector se creó llamando a una sobrecarga de Directorio abierto), entonces este método verifica si hay más confirmaciones (ver Cometer()) han ocurrido en el directorio. Si, por el contrario, este lector es un lector casi en tiempo real (es decir, obtenido mediante una llamada a
Abierto (IndexWriter, Booleano), o llamando a una sobrecarga de OpenIfChanged (Lector de directorio)
en un lector casi en tiempo real), entonces este método comprueba si se ha producido una nueva confirmación o si se han realizado nuevos cambios no confirmados a través del escritor. Tenga en cuenta que incluso si el escritor solo ha realizado la fusión, este método aún devolverá En cualquier caso, si esto vuelve |
ListCommits(Directorio) | Devuelve todos los puntos de confirmación que existen en el Directorio. Normalmente, porque el valor predeterminado es KeepOnlyLastCommitDeletionPolicy, solo habría un punto de compromiso. Pero si está usando un personalizado IndexDeletionPolicyIndexDeletionPolicy entonces podría haber muchos compromisos. Una vez que tenga un compromiso dado, puede abrir un lector llamando Abrir (IndexCommit) Debe haber al menos una confirmación en el Directorio, de lo contrario, este método arroja Excepción de índice no encontrado. Tenga en cuenta que si hay una confirmación en curso mientras se ejecuta este método, esa confirmación puede devolverse o no. |
Abrir (IndexCommit) | Experto: devuelve un Lector de índices leyendo el índice en el dado ÍndiceCommit. |
Abierto (IndexCommit, Int32) | Experto: devuelve un Lector de índices leyendo el índice en el dado
ÍndiceCommit y |
Abierto (IndexWriter, Booleano) | Abrir un tiempo casi real Lector de índices del desplegable Escritor de índices. @lucene.experimental |
Directorio abierto) | Devuelve un Lector de índices leyendo el índice en el dado Directorio |
Abrir (Directorio, Int32) | Experto: Devuelve un Lector de índices leyendo el índice en el dado Directorio con el termInfosIndexDivisor dado. |
OpenIfChanged (Lector de directorio) | Si el índice ha cambiado desde que se abrió el lector provisto, abra y devuelva un nuevo lector; de lo contrario, volver
Este método suele ser mucho menos costoso que abrir un nuevo Lector de directorios ya que comparte recursos (por ejemplo, sub-lectores) con el proporcionado Lector de directorios, cuando sea posible. El lector proporcionado no se desecha (usted es responsable de hacerlo); si se devuelve un nuevo lector, eventualmente también debe desecharlo. Asegúrese de nunca deshacerse de un lector mientras otros subprocesos todavía lo están usando; ver Administrador de búsquedas para simplificar la gestión de esto. |
Abrir si ha cambiado (DirectoryReader, IndexCommit) | Si ÍndiceCommit difiere de lo que el lector proporcionado está buscando, abre y devuelve un nuevo lector; de lo contrario, volver |
OpenIfChanged (DirectoryReader, IndexWriter, Boolean) | Experto: Si hay cambios (comprometidos o no) en el
Escritor de índices en comparación con lo que está buscando el lector provisto, luego abra y devuelva un nuevo
Lector de índices buscar cambios tanto comprometidos como no confirmados del escritor; de lo contrario, volver Esto proporciona una búsqueda "casi en tiempo real", en la que los cambios realizados durante una Escritor de índices la sesión puede estar disponible rápidamente para realizar búsquedas sin cerrar el editor ni llamar Cometer(). Es cerca en tiempo real porque no existe una gran garantía sobre la rapidez con la que puede obtener un nuevo lector después de realizar cambios con Escritor de índices. Tendrás que experimentar en tu situación para determinar si es lo suficientemente rápido. Como se trata de una característica nueva y experimental, informe sobre sus hallazgos para que podamos aprender, mejorar e iterar. La primera vez que se llama a este método, esta instancia de escritor hará todo lo posible por agrupar los lectores que abre para realizar fusiones, aplicar eliminaciones, etc. Esto significa que se consumirán recursos adicionales (RAM, descriptores de archivo, tiempo de CPU). Para una latencia más baja al reabrir un lector, debe llamar Calentador de segmento fusionado (en Configuración de IndexWriter) para precalentar un segmento recién fusionado antes de que se confirme en el índice. Esto es importante para minimizar el retraso del índice a la búsqueda después de una combinación grande. Si se está ejecutando una llamada AddIndexes* en otro subproceso, este lector solo buscará los segmentos del índice externo que se han copiado con éxito hasta el momento. NOTA: Una vez que se elimina el escritor, se pueden seguir utilizando los lectores pendientes. Sin embargo, si intenta reabrir cualquiera de esos lectores, encontrará un @lucene.experimental |