Lucene dall’interno – Gestione della codifica e compressione degli interi

Lucene - Gestione codifica e compressione interi.

Approfondisci PackedInts, VInt, FixedBitSet e RoaringDocIdSet ( Bitmap Roaring)

Immagine di Gerd Altmann da Pixabay

In precedenza, abbiamo appreso sulla compressione dei vettori utilizzando la quantizzazione del prodotto per la ricerca di similarità.

Come comprimere e adattare un enorme insieme di vettori in memoria per la ricerca di similarità con il calcolo della distanza asimmetrica…

towardsdatascience.com

In questo articolo, esploreremo e acquisiremo una comprensione di come gli interi sono codificati e compressi in Lucene, il mondo in cui l’indice invertito prende il centro della scena.

Lucene – Breve introduzione

Lucene è una libreria di motori di ricerca open source scritta in Java. Creata da Doug Cutting nel 1999, è conosciuta per la ricerca full-text e l’indicizzazione.

Questo progetto software open source, sotto The Apache Software Foundation, è ancora in sviluppo attivo dopo più di due decenni. Nel corso degli anni, si è evoluto e cresciuto diventando una potente libreria di motori di ricerca ad alte prestazioni con tutte le funzionalità.

Indubbiamente, il successo di Lucene è attribuito in gran parte alla sua solida comunità e all’incredibile lavoro contribuito dai committers. La loro partecipazione e collaborazione hanno portato Lucene a dove si trova oggi. Molte popolari piattaforme di ricerca aziendale e soluzioni come Solr ed Elasticsearch sono costruite su Lucene.

“Per un progetto open source, 20 anni sono un lungo periodo. Senza dubbio, la longevità di Lucene è una testimonianza della forza e della diversità della sua comunità” – Celebrating 20 years of Apache Lucene

Indice invertito

L’indice invertito è il cuore di Lucene. L’indice invertito è composto da due parti: a sinistra abbiamo il dizionario dei termini e a destra abbiamo i posting per ogni termine.

Figura 1: Dizionario dei termini e liste di posting formano l'indice invertito in Lucene. Tutte le immagini sono dell'autore, salvo diversa indicazione.

I posting sono informazioni sull’occorrenza di un termine in un documento. La lista di posting contiene gli ID dei documenti in cui si trova il…