Ponte en contacto a través de Slack:
PISA es un motor de búsqueda de texto capaz de ejecutarse en colecciones de documentos a gran escala. Permite a los investigadores experimentar con técnicas de última generación, lo que genera un entorno ideal para un rápido desarrollo.
Algunas características de PISA se enumeran a continuación:
PISA es un motor de búsqueda de texto, aunque el "Proyecto PISA" es un conjunto de herramientas que ayudan a experimentar con la indexación y el procesamiento de consultas. Dada una colección de textos, PISA puede construir un índice invertido sobre este corpus, permitiendo realizar búsquedas en el corpus. El índice invertido, en pocas palabras, es una estructura de datos eficiente que representa el corpus del documento almacenando una lista de documentos para cada término único (ver aquí). En el momento de la consulta, PISA almacena su índice en la memoria principal para una rápida recuperación.
En términos muy simples, PISA es un motor de búsqueda de texto. A partir de un corpus de documentos, por ejemplo Wikipedia, PISA puede construir un índice invertido que nos permite buscar rápidamente en la colección de Wikipedia. En el nivel más básico, se admiten consultas booleanas AND
y OR
. Imaginemos que quisiéramos encontrar todos los documentos de Wikipedia que coincidan con la consulta "té oolong" ; podríamos ejecutar una conjunción booleana ( oolong AND
tea ). En cambio, podríamos estar interesados en encontrar documentos que contengan oolong o té (o ambos), en cuyo caso podemos ejecutar una disyunción booleana ( oolong OR
tea ).
Más allá de la simple coincidencia booleana, como se analizó anteriormente, en realidad podemos clasificar documentos. Sin entrar en detalles, los documentos se clasifican según funciones que suponen que cuanto más raro es un término, más importante es la palabra. Estos clasificadores también suponen que cuanto más a menudo aparece una palabra en un documento, es más probable que el documento trate sobre esa palabra. Finalmente, los documentos más largos contienen más palabras y, por lo tanto, es más probable que obtengan puntuaciones más altas que los documentos más cortos, por lo que se lleva a cabo una normalización para garantizar que todos los documentos sean tratados por igual. El lector interesado tal vez desee examinar el artículo de Wikipedia de TF/IDF para obtener más información sobre este método de clasificación.
Este no es el mismo tipo de grep
de búsqueda, por ejemplo. Esto está más estrechamente relacionado con el popular motor de búsqueda Lucene, aunque actualmente no admitimos tantos tipos de consultas como Lucene. Como se analizó anteriormente, la principal estructura de datos subyacente en PISA es el índice invertido . El índice invertido almacena, para cada término, una lista de documentos que contienen ese término. Estas listas se pueden recorrer rápidamente para encontrar documentos que coincidan con los términos de la consulta, y luego estos documentos se pueden calificar, clasificar y devolver al usuario.
El principal caso de uso de PISA es realizar experimentos para mejorar la comprensión del campo de la recuperación de información (RI). Dentro del campo de las RI, hay varias direcciones de investigación importantes en las que se centran, desde mejorar la calidad de los resultados (efectividad) hasta mejorar la escalabilidad y eficiencia de los sistemas de búsqueda. PISA se centra principalmente en la escalabilidad y la eficiencia de la investigación de RI, y es por eso que PISA significa "Índices de desempeño y búsqueda de academia". En definitiva, PISA es una plataforma para desarrollar nuevas innovaciones en la búsqueda eficiente.
Si bien PISA se centra en ser una base para la experimentación, también es perfectamente adecuado para su uso como un sencillo sistema de búsqueda e indexación de propósito general.
PISA puede manejar grandes colecciones de textos. Por ejemplo, PISA puede indexar fácilmente los corpus ClueWeb09B o ClueWeb12B, cada uno de los cuales contiene más de 50 millones de documentos web y cerca de 500 GiB de datos textuales comprimidos , lo que da como resultado índices que oscilan entre 10 y 40 GiB, dependiendo del códec de compresión. usado. Estos índices, dependiendo de algunos detalles, se pueden construir desde cero en alrededor de 10 a 20 horas. Además, se pueden manejar colecciones más grandes mediante fragmentación de índices , que divide los corpus grandes en subconjuntos más pequeños (fragmentos). Sin embargo, observamos que PISA es un sistema en memoria , cuyo objetivo es atender consultas basadas en un índice que reside enteramente en la memoria principal. Como tal, la escala posible estará limitada por la memoria principal.
Algunos trabajos recientes han comparado PISA. Por ejemplo, un estudio experimental sobre métodos de procesamiento de consultas DAAT y compresión de índices realizado por Antonio Mallia, Michal Siedlaczek y Torsten Suel, que apareció en ECIR 2019, mostró que PISA es capaz de devolver los 10 y 1000 documentos principales con una latencia promedio en el rango de 10-40 y 20-50 milisegundos respectivamente, en una colección que contiene 50 millones de documentos web.
PISA también está incluido en el juego de referencia del motor de búsqueda de Tantivy, que también tiene a Tantivy, Lucene y Rucene como competidores.
PISA es una bifurcación del proyecto ds2i iniciado por Giuseppe Ottaviano. El proyecto ds2i contenía el código fuente de una serie de importantes innovaciones de eficiencia en IR, incluido el método de compresión "Partitioned Elias-Fano".
Para aquellos interesados en trabajar con PISA, sugerimos examinar los siguientes recursos:
Si desea participar en PISA, consulte nuestra página de Contribuciones.
Si utiliza PISA en un trabajo de investigación, cite la siguiente referencia:
@inproceedings{MSMS2019,
author = {Antonio Mallia and Michal Siedlaczek and Joel Mackenzie and Torsten Suel},
title = {{PISA:} Performant Indexes and Search for Academia},
booktitle = {Proceedings of the Open-Source {IR} Replicability Challenge co-located
with 42nd International {ACM} {SIGIR} Conference on Research and Development
in Information Retrieval, OSIRRC@SIGIR 2019, Paris, France, July 25,
2019.},
pages = {50--56},
year = {2019},
url = {http://ceur-ws.org/Vol-2409/docker08.pdf}
}