Está en la página 1de 8

TEORÍA DE LA

COMPUTACIÓN

Indexación y
Compresión
de datos para
motores de
búsqueda

Diego Arroyuelo
Académico Departamento de Informática, Universidad Técnica Federico Santa María. Doctor en
Ciencias Mención Computación, Universidad de Chile; Licenciado en Ciencias de la Computación,
Universidad Nacional de San Luis, Argentina. Líneas de Investigación: Estructuras de Datos
y Algoritmos, Compresión y Búsqueda en Texto, Estructuras de Datos Comprimidas, Índices
Comprimidos para Recuperación de la Información.
darroyue@inf.utfsm.cl

52
TEORÍA DE LA
COMPUTACIÓN

P
robablemente muy pocos En el presente artículo mostraré los hacer un ranking de los mismos. Ésta es
usuarios de un motor de avances más recientes y los desafíos una etapa muy importante para la bús-
búsqueda Web se han de- más importantes en el área de Indexa- queda. Sin embargo, en este artículo no
tenido a pensar, respecto ción y Compresión de Datos en motores discutiremos aspectos relacionados con
de los recursos y tecno- de búsqueda, particularmente aquellos el ranking de resultados.
logías involucrados en la en los que he estado involucrado con mi
generación de la página de resultados de
su consulta. La misma debe ser genera-
investigación. Intentaré dar pistas que
permitan comprender cómo los motores
La Indexación de
da en unas pocas décimas de segundo y de búsqueda actuales son capaces de ma- Bases de Datos
debe contener diez resultados relevantes
para el usuario, ojalá los más relevantes.
nejar grandes volúmenes de datos y la car-
ga de trabajo antes mencionada. Todos los
de Documentos
Además, debajo del título y la URL de resultados experimentales aquí mostrados,
Los documentos de la base de datos se co-
cada uno de los resultados encontrados, han sido obtenidos dentro del marco de mi
nocen de antemano a las búsquedas, por
la página debe mostrar pequeñas porcio- grupo de investigación y validados con los
lo que se pueden indexar, esto es, cons-
nes del documento ─conocidas como resultados similares en el estado del arte.
truir una estructura de datos que acelere
snippets─ que contienen las palabras
las respuestas a las consultas. Las estruc-
usadas en la consulta. Para complicar Dada una base de datos de documen-
turas de datos clásicas en este caso son los
más la situación, usualmente decenas de tos de texto (las páginas web), deno-
índices invertidos [9, 13, 22, 30]. Por cada
miles de consultas arriban por segundo tamos con v al vocabulario con todas
palabra p del vocabulario, el índice inver-
a un motor de búsqueda (aproximada- las palabras distintas que aparecen en
tido tiene una lista invertida v que alma-
mente 38 mil consultas por segundo dichos documentos. Para facilitar su
cena los docIDs de los documentos que
para Google en 2012, lo que equivale manipulación, a cada documento se le
contienen a p. Esto es similar al índice que
a 2.4 millones por minuto, o 3.3 mil asigna un identificador (o docID), que
podemos encontrar al final de la mayoría
millones por día [1, 2]). Además, es- es un número entero que lo identifica.
de los libros técnicos. Por cada docID en
tas búsquedas deben realizarse sobre Los usuarios presentan consultas q a la
L(p), también se almacena información
varias decenas de miles de millones base de datos, las que constan de una o
útil para el ranking de resultados, como la
de páginas web [3]. En este escenario, más palabras. El objetivo es encontrar
cantidad de ocurrencias de p en cada uno
tanto la Indexación como la Compre- documentos relacionados con esas pala-
de los documentos.
sión de Datos son indispensables para bras. Existen dos variantes principales
el funcionamiento de los motores de de consultas: las consultas tipo AND
El grueso de las listas invertidas usual-
búsqueda actuales. Esto impacta en los (que buscan los documentos que con-
mente se almacena en memoria secunda-
tiempos de respuesta a las consultas, en tengan a todas las palabras de q) y las
ria, aunque algunas listas (generalmente
el ahorro de espacio de almacenamien- consultas tipo OR (que buscan los do-
las más consultadas) se almacenan en
to, en la consecuente reducción del uso cumentos que contengan al menos una
memoria principal, en lo que se llama el
de espacio físico, en la reducción de los de las palabras de q). Para mostrar los
caché de listas invertidas. Muchos moto-
tiempos de transferencia de datos y en resultados en orden de relevancia para
res de búsqueda incluso precalculan los
el ahorro de energía usada [14]. el usuario, el motor de búsqueda debe
resultados de las consultas más frecuen-

53
TEORÍA DE LA
COMPUTACIÓN

Consulta
del usuario 1 Algoritmos de
procesamiento
de la consulta
Respuesta 5
a la consulta

4
3
2

Índice invertido Base de datos


(memoria textual (memoria
secundaria) secundaria)

Caché de listas
invertidas Documentos
(memoria
principal)

Figura 1 • Pasos para responder una consulta en un motor de búsqueda.

tes y las almacenan en caché. El motor de manera eficiente (en menos de un se- de esto, es común que las listas inver-
de búsqueda también debe almacenar la gundo el usuario debe tener su respuesta), tidas se mantengan en el disco, como
base de datos de documentos en memo- describiendo los principales desafíos que se mencionó anteriormente. Dada una
ria secundaria. Ésta es necesaria tanto se presentan. consulta q, las listas invertidas de cada
para la generación de los snippets como palabra de la consulta se transfieren a
para mostrar la versión “en caché” de
la página, entre otros usos. La Figura 1
el Desafío memoria principal para ser procesadas.
Sin embargo, la baja latencia de acceso
resume el proceso de búsqueda, con los De comprimir a la memoria secundaria puede influir
siguientes pasos: (1) La consulta llega al
procesador de consultas; (2) el procesador
los ínDices De negativamente en la latencia de una
consulta.
intenta resolver la consulta usando las lis- búsqueDa
tas almacenadas en caché; (3) si el caché Una solución a este problema es com-
no contiene la lista invertida de alguna de Las listas invertidas requieren usual- primir las listas invertidas [13, 30].
las palabras de la consulta, ésta debe recu- mente una gran cantidad de espacio de Esto permite emplear de mejor manera
perarse desde la memoria secundaria; (4) almacenamiento. Por ejemplo, las listas el espacio disponible para el caché de
después de usar el índice para encontrar invertidas de docIDs para la reconocida listas. La compresión también produce
las diez mejores páginas para la respuesta colección de documentos TREC GOV2 una importante mejora en el tiempo de
(pueden ser más), éstas deben recuperarse requieren aproximadamente 23 GB, si transferencia de las listas desde el disco,
desde la memoria secundaria para generar usamos un entero de 32 bits por cada ya que se transfieren menos bytes (véase,
los snippets; (5) la página de respuesta es docID (en total son 5.750 millones de por ejemplo, el estudio en [13, sección
enviada al usuario. docIDs en todo el índice). Dicha colec- 6.3.6]). En ambos casos, la compresión
ción contiene páginas del dominio .gov impacta favorablemente en el tiempo de
A continuación estudiaremos cómo se de Estados Unidos, con 25 millones de respuesta a los usuarios.
logra realizar el proceso de la Figura 1 documentos y un total de 426 GB. A raíz

54
TEORÍA DE LA
COMPUTACIÓN

La compresión de datos sin pérdida (es no necesariamente óptima. Aquí se des- ta, reduciendo a la mitad los tiempos
decir, aquella en la que al descomprimir tacan los métodos VByte [29], S9 [5] y del párrafo anterior (docIDs asignados
se obtienen exactamente los mismos PForDelta [33]. aleatoriamente). Esta mejora se produ-
datos originales), en general funciona ce porque al asignar los docIDs cuida-
detectando regularidades en los datos Para dar una idea de la compresión que dosamente, menos bloques de la lista
a comprimir. Por ejemplo, la compre- puede alcanzarse en la práctica, el ín- deben ser descomprimidos en tiempo
sión de textos generalmente se basa en dice invertido comprimido para TREC de búsqueda [27, 31]. Nótese que este
detectar las regularidades del lenguaje GOV2 usa entre 6,20 GB (PForDelta) y resultado permite duplicar la capacidad
escrito y así reducir el espacio de la 7,35 GB (VByte). En promedio esto es de respuesta, a la vez que permite usar
codificación. En el caso de las listas in- entre 8,84 bits y 10,48 bits por docID, menos espacio.
vertidas, la compresión se logra usando menor que los 32 bits originales. Res-
lo que se conoce como gap encoding: pecto de la velocidad de descompresión Dados estos resultados, vale la pena
los docIDs se almacenan ordenados de de las listas, se obtienen entre 446 mi- cuestionarse si existe una mejor manera
manera creciente en las listas invertidas. llones y 1.010 millones de docIDs por de representar las listas invertidas cuan-
Luego, se almacena el primer docID en segundo. Una consulta tipo AND puede do los docIDs han sido asignados cuida-
la lista de manera absoluta (es decir, tal responderse en promedio en 12 a 14 mi- dosamente. Después de todo, los moto-
cual es). El resto de los elementos de la lisegundos por consulta. res de búsqueda actuales trabajan casi
lista, en cambio, se almacenan como la exclusivamente en memoria principal
diferencia entre docIDs consecutivos Algunos trabajos recientes [31] mues- [14], lo que hace que este tipo de me-
en la lista (esas diferencias se conocen tran cómo optimizar los resultados del joras sean importantes. Una alternativa
como gaps). Como la lista original está párrafo precedente. Esto se logra gene- puede ser usar métodos de compresión
ordenada por docIDs crecientes, el re- rando gaps mucho más pequeños en las que logran buenas tasas de compresión,
sultado es una lista de números (gaps) listas invertidas, mediante la asignación como Interpolative Encoding [23]. Sin
enteros positivos. Posteriormente, las cuidadosa de docIDs a los documen- embargo, este método no es eficiente
listas se dividen en bloques de tamaño tos de la colección [10, 11, 15, 25, 26, al descomprimir las listas invertidas,
constante (por ejemplo, 128 docIDs por 27]. Una de las técnicas más simples lo que afectaría el tiempo de respuesta.
bloque) y se usa un compresor de núme- y efectivas es la de ordenar las pági- Afortunadamente, hemos podido mos-
ros enteros sobre los gaps [5, 13, 14, 16, nas lexicográficamente por sus URLs, trar que existen mejores representacio-
19, 23, 29, 30, 33]. y luego asignar los docIDs siguiendo nes para las listas invertidas en esos
ese orden. De esta manera, las páginas casos [7], basándonos en la siguiente
Dichos compresores codifican un núme- que corresponden a un mismo sitio (y, observación: el índice invertido para
ro entero en una cantidad de bits pro- por tanto, muy probablemente usan un TREC GOV2 ordenada por URLs con-
porcional al valor del entero: mientras vocabulario similar) van a tener docIDs tiene aproximadamente 60% de gaps
menor es su valor, menos bits se usan. consecutivos, o en su defecto muy si- con valor 1 (comparado con un 10% de
Dado que almacenamos los gaps en milares. Esto se refleja en las listas in- gaps con valor 1 para la colección or-
lugar de los docIDs, normalmente se vertidas, generando gaps más pequeños denada aleatoriamente). Pero si el 60%
obtienen distribuciones con muchos va- comparados con una asignación aleato- de los gaps tienen valor 1, es probable
lores pequeños, logrando comprimir las ria de los docIDs, como la usada en los que estos se agrupen en posiciones con-
listas. La división en bloques de las lis- resultados del párrafo anterior. Para la secutivas de las listas invertidas. Lla-
tas se hace para no descomprimir toda la colección TREC GOV2 enumerada de mamos runs a esos agrupamientos de 1s
lista en tiempo de búsqueda, sino sólo acuerdo a URLs, el espacio usado por el consecutivos. Los resultados empíricos
los bloques que contienen docIDs re- índice invertido es entre 3,69 GB (5,25 en [7] muestran que esto es cierto en la
levantes para una consulta. Los com- bits por docID) y 6,57 GB (9,35 bits por práctica.
presores más efectivos son aquellos docID). La velocidad de descompresión
que permiten una alta velocidad de des- es prácticamente la misma que la del En nuestro trabajo [7] mostramos que
compresión ─dado que esto impacta en párrafo anterior. El tiempo de respues- en estos casos es mejor usar compre-
el tiempo de respuesta─ sumado a una ta para consultas tipo AND es ahora de sión run-length de los runs: en lugar
tasa de compresión razonable, aunque entre 6 y 7 milisegundos por consul- de codificar los 1s en un run de mane-

55
TEORÍA DE LA
COMPUTACIÓN

ra explícita (como en los trabajos pre-


vios), es más eficiente representarlos
Usando nuestros compresores adapta-
dos para compresión run-length, el ín-
El desafío de
implícitamente indicando la presencia dice invertido para TREC GOV2 ahora comprimir la
del run (con algún tipo de marcador), requiere entre 3,31 GB (4,71 bits por
docID) y 3,65 GB (5,20 bits por docID).
Web textual
seguido por la longitud del run. De esta
manera se representan runs muy largos Esto es una mejora de un 10% respec-
Para poder generar snippets, los moto-
usando muy pocos bits. La compresión to del índice con docIDs asignados por
res de búsqueda deben almacenar en sus
run-length es muy conocida [19] y ha URLs (y un 49% de mejora respecto
servidores el texto de las páginas web.
sido usada con éxito en diversas áreas, del índice con documentos enumerados
Obviamente, esto usa mucho espacio,
como la compresión de imágenes [30]. aleatoriamente). Estos métodos des-
por lo que debe comprimirse. Además,
Sin embargo, no había sido usada en el comprimen entre 472 millones y 1.351
para responder a una consulta se deben
escenario planteado, aunque una técni- millones de docIDs por segundo (una
extraer los diez mejores documentos
ca similar ya había sido empleada para mejora de hasta 34% respecto a los ín-
encontrados y generar sus snippets. El
comprimir grafos de la Web [12]. Sin dices ordenados por URL). Esta mejora
principal problema aquí es cómo com-
embargo, dicha codificación no puede se explica porque los runs de 1s no se
primir textos de gran tamaño y soportar
ser empleada directamente en nuestro descomprimen de manera explícita, lo
la descompresión de páginas arbitrarias
caso. En cambio, tuvimos que adaptar cual es útil para muchas aplicaciones.
eficientemente. Conviene recordar que
los principales métodos de compresión Finalmente, el tiempo de búsqueda es
la compresión se basa en detectar regu-
de números enteros para soportar com- similar (y, en algunos casos, levemen-
laridades en los datos. Cuando el volu-
presión tipo run-length. A pesar de que te superior) al obtenido para orden por
men de datos es muy grande, esto no es
encontrar una asignación de docIDs que URL, es decir 6 a 7 milisegundos por
una tarea fácil [18].
produzca la cantidad óptima de runs consulta. Aquí nuevamente el algoritmo
es un problema NP-hard [20], las enu- que procesa la consulta no descompri-
Un primer enfoque para soportar dicha
meraciones cuidadosas de documentos me los runs de manera explícita.
funcionalidad es el de los auto índices
producen runs de suficiente
comprimidos [24]. Éstas son represen-
buena calidad.
taciones comprimidas del texto que per-
miten búsqueda indexada y la descom-
presión de partes arbitrarias del texto
de manera eficiente. Sin embargo, en
la práctica la velocidad de descompre-
sión de las mejores soluciones actuales
es de 1.5 a 2.0 MB por segun-
do [8, 21]. Esto es
mucho menos
que la ve-

56
TEORÍA DE LA
COMPUTACIÓN

locidad de descompresión lograda por ridades que pueden aprovecharse para de búsqueda lo adopten para almacenar
compresores estándar como snappy mejorar la compresión. Sin embargo, sus colecciones de documentos.
o LZ4, que llega a ser de 1.0 a 1.5 GB lograr esa tasa de compresión tiene su
por segundo [4], o incluso la velocidad precio: nuestro trabajo [6] mostró que, Una manera efectiva de mejorar la tasa
de descompresión de gzip que llega en el escenario de un motor de búsque- de compresión alcanzada con Turpin et
a ser de cientos de MBs por segundo. da, extraer las diez primeras páginas de al. es usar una compresión de dos fases
Por esta razón los motores de búsqueda respuesta a una consulta usando dicho [6]. Es importante notar que el método
prefieren usar compresores estándar, en enfoque toma 25 milisegundos por con- de Turpin et al. comprime el texto mo-
particular de la familia Lempel-Ziv de sulta. Esto es muy costoso y afecta al dificando la manera en que codifica las
1977 [32], como todos los mencionados tiempo total de respuesta. palabras del mismo. Esto quiere decir
anteriormente. Una solución ineficiente que la estructura original del texto (y
es concatenar las páginas web formando Otra solución efectiva es la de Turpin sus potenciales regularidades) se man-
un único texto, y luego usar un compre- et al. [28], donde proponen enumerar el tienen y, por ende, es posible aplicar un
sor estándar. Sin embargo, para extraer vocabulario de la colección de acuerdo método de compresión estándar sobre él
una página web debemos descomprimir a la frecuencia con la que las palabras [17]. La compresión de dos fases enton-
todo el texto, algo absurdo en el caso de la aparecen en las páginas web: la palabra ces significa: en la primera fase se com-
Web. Otra posible solución es comprimir más frecuente recibe un identificador de prime con Turpin et al., mientras que en
las páginas por separado. Pero esto afecta palabra 0, la segunda palabra más fre- la segunda fase se aplica un compresor
notablemente la tasa de compresión, ya cuente recibe un identificador 1, y así estándar al resultado de la primera fase.
que las regularidades entre páginas no son siguiendo. Luego, las palabras de cada En particular, en [6] los mejores com-
comprimidas. página son reemplazadas por su co- promisos entre tasa de compresión y
rrespondiente identificador, obtenien- velocidad de descompresión se logra-
Una solución bastante aceptada en la do una secuencia de números enteros. ron usando el compresor snappy en
literatura [18, 6] corresponde a un pun- Dado que las palabras más frecuentes la segunda fase. Dicho compresor es
to intermedio entre los enfoques ante- tienen identificadores con menor valor, de los más rápidos para descomprimir,
riores. Se concatenan las páginas web, se utiliza un método de compresión de pero tiene tasas de compresión del 40%
pero esta vez formando bloques de un números enteros (tal como los usados - 50%, lo cual es poco eficiente [4]. Las
tamaño máximo definido (generalmente para comprimir listas invertidas) sobre malas tasas de compresión se deben a
entre 50 KB y 1 MB). Luego, cada blo- estas secuencias, obteniendo compre- que snappy puede detectar regularida-
que es comprimido por separado. Para sión. Sin embargo, las tasas de com- des dentro de una ventana muy pequeña
obtener una página web sólo se debe presión alcanzadas son menores a las del texto (aproximadamente 32 KB).
descomprimir el bloque que la contie- logradas con compresores estándar: Pero si en la primera etapa el texto se
ne, lo cual es eficiente en tiempo de 29% para TREC GOV2. Esto tiene una comprime con Turpin et al., esto signi-
búsqueda. Además, se logra una buena explicación teórica: este tipo de com- fica que artificialmente estamos permi-
tasa de compresión, porque las regula- presión basada sólo en la frecuencia tiendo que más regularidades quepan
ridades entre las páginas que conforman de las palabras se conoce como com- dentro de la ventana de compresión.
un bloque son eventualmente detecta- presión de orden 0. Los compresores Esto ha mostrado ser muy efectivo, ya
das por un compresor. Los resultados estándar, por otra parte, alcanzan com- que se alcanzan tasas de compresión del
de Ferragina y Manzini [18] muestran presión de orden superior: son capaces 12% con una velocidad de descompre-
que la Web textual puede comprimirse de detectar los contextos en que apare- sión de 4 milisegundos por consulta, e
a un 5% de su tamaño original usando cen las palabras, por lo tanto cuentan incluso tasas de compresión del 16%
compresores estándar. Esto fue muy con mayor información que les permite con una velocidad de descompresión
comentado en su momento, ya que es una mejor compresión. Para una con- de 0.5 milisegundos por consulta [6].
bastante menos que las tasas de compre- sulta, los 10 mejores resultados pueden Esto explica en parte cómo un motor
sión de 20% a 25% observadas en do- descomprimirse en sólo 0.2 milisegun- de búsqueda puede manejar grandes vo-
cumentos convencionales. La razón es dos, lo cual no afecta el tiempo total de lúmenes de texto, y a la vez responder
que el gran volumen de texto de la Web una consulta [6]. La practicidad de este consultas y mostrar snippets en pocas
contiene muchas repeticiones y regula- método ha hecho que algunos motores décimas de segundo.

57
TEORÍA DE LA
COMPUTACIÓN

Conclusiones exhaustivas y sin ranking. Es necesa-


rio estudiar cómo agregar ranking sin
y Trabajos afectar este resultado. Referencias
Futuros [1] http://en.wikipedia.org/wiki/
Agradecimientos Google_Search
La indexación y la compresión de da-
tos son vitales para el funcionamiento Este trabajo es financiado por el Pro- [2] http://searchengineland.com/
de los motores de búsqueda actuales. yecto Fondecyt 11121556 de Inicia- google-search-press-129925
Los resultados mostrados permiten
ción en la Investigación. El grupo de
comprender (a grandes rasgos) cómo
investigación está conformado por Se- [3] http://www.worldwidewebsize.
hacen los motores de búsqueda para
nén González (estudiante de Magíster, com/
responder consultas de manera muy
DCC, Universidad de Chile), Mauricio
rápida sobre grandes volúmenes de
Oyarzún (estudiante de Doctorado, [4] http://mattmahoney.net/dc/text.
texto. Nuestro trabajo apunta a mejo-
Universidad de Santiago de Chile) y html
rar la eficiencia general de un motor
Víctor Sepúlveda (Yahoo! Labs San-
de búsqueda. Nuestros principales
tiago). [5] V. N. Anh y A. Moffat. Inverted
resultados muestran mejores compro-
index compression using word-alig-
misos entre espacio usado y tiempo
ned binary codes. Information Re-
requerido para soportar las búsquedas
trieval, 8(1):151–166, 2005.
[6, 7]. En particular, buscamos hacer
más eficientes los pasos (2), (3) y (4)
[6] D. Arroyuelo, S. González, M.
de la Figura 1. Un tema de investiga-
Marín, M. Oyarzún y T. Suel. To
ción que estamos desarrollando (y que
index or not to index: Time-space
no discutimos aquí) es cómo agrupar
trade-offs in search engines with po-
los documentos en bloques. Por un
sitional ranking functions. In Proc.
lado, quisiéramos que documentos
ACM SIGIR, pp. 255-264. 2012.
sintácticamente similares pertenezcan
al mismo bloque, para comprimirlos
[7] D. Arroyuelo, S. González, M.
mejor. Por otro, quisiéramos que los
Oyarzún y V. Sepúlveda. Docu-
documentos que van a ser parte de la
ment Identifier Reassignment and
respuesta a una consulta también estén
Run-Length-Compressed Inverted
almacenados en el mismo bloque, para
Indexes for Improved Search Per-
reducir la cantidad de bloques que se
formance. En proc. ACM SIGIR,
descomprimen y mejorar el tiempo
páginas 173-182, 2013.
de extracción. Respecto del procesa-
miento de la consulta en la Figura 1,
[8] D. Arroyuelo y G. Navarro. Prac-
estamos estudiando la manera de usar
tical approaches to reduce the space
la representación run-length para me-
requirement of Lempel-Ziv-based
jorar algorítmicamente el proceso. La
compressed text indices. ACM J. of
idea es considerar cada lista invertida
Experimental Algorithmics, Volume
como un conjunto de intervalos. Estos
15, article 1.5, 2010.
conjuntos deben intersectarse (consul-
tas tipo AND) o unirse (consultas tipo
[9] R. Baeza-Yates y B. Ribeiro-
OR). Algunos resultados preliminares
Neto. modern information retrieval:
indican que el tiempo de las consultas
The concepts and technology behind
tipo OR puede reducirse a casi la mi-
search, Second edition. Pearson
tad del tiempo original. Sin embargo,
Education Ltd. 2011.
estamos hablando de consultas OR

58
TEORÍA DE LA
COMPUTACIÓN

rego. Assigning identifiers to docu-


[10] R. Blanco y A. Barreiro. Docu- [19] S. Golomb. Run-length en- ments to enhance the clustering pro-
ment identifier reassignment through coding. IEEE Transactions on In- perty of full-text indexes. In Proc.
dimensionality reduction. In Proc. formation Theory, 12(3):399–401, ACM SIGIR, pp. 305–312, 2004.
ECIR, pp. 375–387, 2005. 1966.
[28] A. Turpin, Y. Tsegay, D. Haw-
[11] D. Blandford y G. Blelloch. In- [20] D. Johnson, S. Krishnan, J. king, H. Williams: Fast generation
dex compression through document Chhugani, S. Kumar y S. Venka- of result snippets in web search. In
reordering. In Proc. DCC, pp. 342– tasubramanian. Compressing large Proc. SIGIR, pp. 127–134, 2007.
351, 2002. boolean matrices using reordering
techniques. In Proc. VLDB, pp. [29] H. Williams y J. Zobel. Com-
[12] P. Boldi y S. Vigna: The web- 13–23, 2004. pressing integers for fast file access.
graph framework I: compression The Computer Journal, 42(3):193–
techniques. In Proc. WWW, pp. 595- [21] S. Kreft y G. Navarro. On Com- 201, 1999.
602, 2004. pressing and indexing repetitive
sequences. Theoretical Computer [30] I. Witten, A. Moffat y T. Bell.
[13] S. Büttcher, C. Clarke y G. Cor- Science 483:115-133, 2013. Managing gigabytes: Compressing
mack. Information Retrieval: Imple- and indexing documents and images,
menting and evaluating search engi- [22] C. Manning, P. Raghavan y H. Second Edition. Morgan Kaufmann,
nes. The MIT Press. 2010. Schütze. Introduction to informa- 1999.
tion retrieval, Cambridge University
[14] J. Dean. Challenges in building Press. 2008. [31] H. Yan, S. Ding y T. Suel. In-
large-scale information retrieval sys- verted index compression and query
tems: invited talk. In Proc. WSDM, [23] A. Moffat y L. Stuiver. Binary processing with optimized document
pp. 1, 2009. interpolative coding for effective ordering. In Proc. WWW, pp. 401–
index compression. Information Re- 410, 2009.
[15] S. Ding, J. Attenberg y T. Suel. trieval, 3(1):25–47, 2000.
Scalable techniques for document [32] J. Ziv y A. Lempel: A univer-
identifier assignment in inverted in- [24] G. Navarro y V. Mäkinen: sal algorithm for sequential data
dexes. In Proc. WWW, pp. 311–320, Compressed full-text indexes. ACM compression. IEEE Transactions on
2010. Computing Surveys, 39(1), 2007. Information Theory, 23(3): 337-343,
1977.
[16] P. Elias. Universal codeword [25] W.-Y. Shieh, T.-F. Chen, J. Sha-
sets and representations of the inte- nn, y C.-P. Chung. Inverted file com- [33] M. Zukowski, S. Héman, N.
gers. IEEE Transactions on Informa- pression through document identifier Nes y P. Boncz. Super-scalar RAM-
tion Theory, 21(2):194–203, 1975. reassignment. Information Proces- CPU cache compression. In Proc.
sing and Management, 39(1):117– ICDE, pp. 59, 2006.
[17] A. Fariña, G. Navarro y J. Para- 131, 2003.
má. Boosting text compression with
word-based statistical encoding. The [26] F. Silvestri. Sorting out the do-
Computer Journal, 55(1):111-131, cument identifier assignment pro-
2012. blem. In Proc. ECIR, pp. 101–112,
2007.
[18] P. Ferragina y G. Manzini. On
compressing the textual web. In [27] F. Silvestri, S. Orlando y R. Pe-
Proc. WSDM, pp. 391–400, 2010.

59

También podría gustarte