Lettore indice di classe
Lettore di indici è una classe astratta, che fornisce un'interfaccia per accedere a un indice. La ricerca di un indice viene eseguita interamente attraverso questa interfaccia astratta, in modo che qualsiasi sottoclasse che lo implementa sia ricercabile.
Esistono due diversi tipi di file Lettore di indicis:
- Lettore Atomico: Questi indici non sono costituiti da diversi sotto-lettori, sono atomici. Supportano il recupero di campi memorizzati, valori di documenti, termini e registrazioni.
- Lettore Composito: Istanze (come Lettore di directory) di questo lettore può essere utilizzato solo per ottenere i campi memorizzati dal sottostante Lettore Atomicos, ma non è possibile recuperare direttamente i messaggi. Per farlo, ottieni i lettori secondari tramite OttieniSequentialSubReaders(). In alternativa, puoi imitare un Lettore Atomico (con un grave rallentamento), avvolgendo lettori compositi con SlowCompositeReaderWrapper.
Lettore di indici le istanze per gli indici su disco sono generalmente costruite con una chiamata a uno degli statici DirectoryReader.Open()
metodi, ad es Apri(Directory). Lettore di directory eredita il Lettore Composito classe astratta, non è possibile ottenere direttamente i messaggi.
Per efficienza, in questa API i documenti sono spesso indicati tramite numeri di documento, numeri interi non negativi che nominano ciascuno un documento univoco nell'indice. Questi numeri di documento sono temporanei: possono cambiare quando i documenti vengono aggiunti ed eliminati da un indice. I clienti non dovrebbero quindi fare affidamento su un determinato documento che ha lo stesso numero tra le sessioni.
NOTA: Lettore di indici le istanze sono completamente thread-safe, il che significa che più thread possono chiamare uno qualsiasi dei suoi metodi, contemporaneamente. Se la tua applicazione richiede la sincronizzazione esterna, dovresti non sincronizzare sul Lettore di indici esempio; usa invece i tuoi oggetti (non Lucene).
Eredità
montaggio: DistributedLuce.Net.dll
Sintassi
public abstract class IndexReader : IDisposable, IIdentifiableSurrogate
Costruttori
Nome | Descrizione |
---|---|
Lettore indice() | |
IndexReader(Stringa, IRPCTransport, Tipo) |
campi
Nome | Descrizione |
---|---|
_basesurrogateObject | |
Partizioni |
Properties
Nome | Descrizione |
---|---|
Consenti risultati parziali | Impostare su false per restituire un errore generale se la richiesta produce risultati parziali. Impostato su true, che consentirà risultati parziali in caso di cluster parziale. |
CombinatoCoreAndDeletesKey | Esperto: restituisce una chiave per questo Lettore di indici che include anche le eliminazioni, quindi IFieldCache/CachingWrapperFilter può ritrovarlo. Questa chiave non deve avere metodi Equals()/GetHashCode(), quindi "equals" significa "identico". |
Contesto | Esperto: restituisce la radice IndexReaderContext per questo Lettore di indicialbero del sottolettore di. Se questo lettore è composto da lettori secondari, cioè questo lettore è un lettore composito, questo metodo restituisce a CompositeReaderContext tenendo i figli diretti del lettore e una visione dei contesti fogliari atomici dell'albero del lettore. Tutti i sub- IndexReaderContext le istanze a cui fa riferimento il contesto di primo livello di questo lettore sono private per questo lettore e non sono condivise con un altro albero di contesto. Per esempio, Cercatore di indici utilizza questa API per guidare la ricerca da parte di un lettore di foglie atomiche alla volta. Se questo lettore non è composto da lettori figlio, questo metodo restituisce un AtomicReaderContext. Nota: uno qualsiasi dei sub-CompositeReaderContext le istanze a cui si fa riferimento da questo contesto di primo livello non supportano Foglie. Solo il contesto di primo livello mantiene la comoda visualizzazione foglia per motivi di prestazioni. |
CoreCacheKey | Esperto: restituisce una chiave per questo Lettore di indici, Così IFieldCache/CachingWrapperFilter può ritrovarlo. Questa chiave non deve avere metodi Equals()/GetHashCode(), quindi "equals" significa "identico". |
Ha eliminazioni | Reso |
Foglie | Restituisce i fogli del lettore o se stesso se questo lettore è atomico. Questa è una chiamata di metodo di convenienza |
LuceneRPCTransportLayer | |
Max Doc | Restituisce uno maggiore del numero di documento più grande possibile. questo può essere usato, ad esempio, per determinare quanto grande allocare un array che avrà un elemento per ogni numero di documento in un indice. |
NumDocumentiEliminati | Restituisce il numero di documenti eliminati. |
NumDoc | Restituisce il numero di documenti in questo indice. |
RifCount | Esperto: restituisce l'attuale refCount per questo lettore |
Metodi
Nome | Descrizione |
---|---|
AddReaderClosedListener(IndexReader.IReaderClosedListener) | Esperto: aggiunge a IndexReader.IReaderClosedListener. Il listener fornito verrà richiamato quando questo lettore viene chiuso. @lucene.sperimentale |
DecRef() | Esperto: diminuisce il RifCount di questo Lettore di indici esempio. Se la RifCount scende a 0, quindi questo lettore viene eliminato. Se viene colpita un'eccezione, il RifCount è invariato. |
Smaltire() | Chiude i file associati a questo indice. Salva anche tutte le nuove eliminazioni su disco. Nessun altro metodo dovrebbe essere chiamato dopo che questo è stato chiamato. |
Elimina (Booleano) | Chiude i file associati a questo indice. Questo metodo implementa il modello usa e getta. Potrebbe essere ignorato per eliminare le risorse gestite o non gestite, ma assicurati di chiamare |
DocFreq(Termine) | Restituisce il numero di documenti contenenti il
|
FaiChiudi() | Gli attrezzi si chiudono. |
Documento(Int64) | Restituisce i campi memorizzati del NOTA: per motivi di prestazioni, questo metodo non verifica se il documento richiesto è stato cancellato, e quindi la richiesta di un documento cancellato può produrre risultati non specificati. Di solito questo non è richiesto, tuttavia puoi verificare se il documento viene eliminato controllando il Ibit tornato da GetLiveDocs(Lettore di indici). NOTA: viene restituito solo il contenuto di un campo, se tale campo è stato archiviato durante l'indicizzazione. I metadati come boost, omitNorm, IndexOptions, tokenizzati e così via non vengono conservati. |
Document(Int64, ISet ) | Come Documento(Int64) ma carica solo i campi specificati. Nota che questo è semplicemente zucchero per DocumentStoredFieldVisitor(ISet ). |
Documento(Int64, StoredFieldVisitor) | Esperto: visita i campi di un documento archiviato, per l'elaborazione/caricamento personalizzato di ogni campo. Se vuoi semplicemente caricare tutti i campi, usa
|
GarantireAperto() | Genera |
GetDocCount(Stringa) | Restituisce il numero di documenti che contengono almeno un termine per questo campo oppure -1 se questa misura non è archiviata dal codec. Si noti che, proprio come altre misure a termine, questa misura non tiene conto dei documenti eliminati. |
GetMaxDocsPerIndex() | |
GetSumDocFreq(Stringa) | Restituisce la somma di Freq.doc per tutti i termini in questo campo o -1 se questa misura non è memorizzata dal codec. Si noti che, proprio come altre misure a termine, questa misura non tiene conto dei documenti eliminati. |
GetSumTotalTermFreq(Stringa) | Restituisce la somma di Freq.Term.Totale per tutti i termini in questo campo o -1 se questa misura non è memorizzata dal codec (o se questo campo omette termine freq e posizioni). Si noti che, proprio come altre misure a termine, questa misura non tiene conto dei documenti eliminati. |
OttieniIDsurrogato() | |
GetTermVector(Int64, Stringa) | Recupera il vettore dei termini per questo documento e campo, oppure
|
GetTermVettore(Int64) | Recupera i vettori di termine per questo documento, o |
IncRif() | Esperto: incrementa il RifCount di questo Lettore di indici esempio. RifCounts sono usati per determinare quando un lettore può essere smaltito in sicurezza, cioè non appena non ci sono più riferimenti. Assicurati di chiamare sempre un corrispondente DecRef(), in una clausola definitiva; altrimenti il lettore potrebbe non essere mai eliminato. Notare che Elimina (Booleano) chiama semplicemente DecRef(), il che significa che il Lettore di indici non sarà davvero eliminato fino a quando DecRef() è stato chiamato per tutte le referenze in sospeso. |
Apri(IndiceCommit) | Esperto: restituisce un Lettore di indici leggendo l'indice nel dato IndiceCommit. |
Apri(IndexCommit, Int32) | Esperto: restituisce un Lettore di indici leggendo l'indice nel dato
IndiceCommit ed |
Apri(IndexWriter, Booleano) | Apri quasi in tempo reale Lettore di indici dal Indice scrittore. |
Apri(Directory) | Restituisce un file Lettore di indici leggendo l'indice nel dato elenco |
Apri(Directory, Int32) | Esperto: Resi a Lettore di indici leggendo l'indice nel dato
elenco con il dato |
RegisterParentReader(IndexReader) | Esperto: questo metodo è chiamato da Lettore di indicis che avvolgono altri lettori (es Lettore Composito or |
RemoveReaderClosedListener(IndexReader.IReaderClosedListener) | Esperto: rimuove un aggiunto in precedenza IndexReader.IReaderClosedListener. @lucene.sperimentale |
TotalTermFreq(Termine) | Restituisce il numero totale di occorrenze di |
ProvaIncRef() | Esperto: incrementa il RifCount di questo Lettore di indici
istanza solo se il Lettore di indici non è stato ancora smaltito e ritorna RifCounts sono usati per determinare quando un lettore può essere smaltito in sicurezza, cioè non appena non ci sono più riferimenti. Assicurati di chiamare sempre un corrispondente DecRef(), in una clausola definitiva; altrimenti il lettore potrebbe non essere mai eliminato. Notare che Elimina (Booleano) chiama semplicemente DecRef(), il che significa che il Lettore di indici non sarà davvero eliminato fino a quando DecRef() è stato chiamato per tutte le referenze in sospeso. |