Contactez-nous via Slack :
PISA est un moteur de recherche textuelle capable de fonctionner sur des collections de documents à grande échelle. Il permet aux chercheurs d’expérimenter des techniques de pointe, créant ainsi un environnement idéal pour un développement rapide.
Certaines fonctionnalités du PISA sont répertoriées ci-dessous :
PISA est un moteur de recherche de texte, bien que le « Projet PISA » soit un ensemble d'outils permettant d'expérimenter l'indexation et le traitement des requêtes. Étant donné une collection de textes, PISA peut construire un index inversé sur ce corpus, permettant ainsi d'effectuer des recherches dans le corpus. L'index inversé, en termes simples, est une structure de données efficace qui représente le corpus de documents en stockant une liste de documents pour chaque terme unique (voir ici). Au moment de la requête, PISA stocke son index dans la mémoire principale pour une récupération rapide.
En termes très simples, PISA est un moteur de recherche textuelle. À partir d’un corpus de documents, par exemple Wikipédia, PISA peut construire un index inversé qui nous permet d’effectuer une recherche rapide dans la collection Wikipédia. Au niveau le plus élémentaire, les requêtes booléennes AND
et OR
sont prises en charge. Imaginez que nous voulions trouver tous les documents Wikipédia correspondant à la requête "oolong tea" - nous pourrions exécuter une conjonction booléenne ( oolong AND
tea ). Nous pourrions plutôt être intéressés par la recherche de documents contenant soit du oolong , soit du thé (ou les deux), auquel cas nous pouvons exécuter une disjonction booléenne ( oolong OR
tea ).
Au-delà de la simple correspondance booléenne, comme indiqué ci-dessus, nous pouvons réellement classer les documents. Sans entrer dans les détails, les documents sont classés selon des fonctions qui supposent que plus un terme est rare , plus il est important . Ces classements supposent également que plus un mot apparaît souvent dans un document, plus il est probable que le document porte sur ce mot. Enfin, les documents plus longs contiennent plus de mots et sont donc plus susceptibles d'obtenir des scores plus élevés que les documents plus courts. Une normalisation est donc effectuée pour garantir que tous les documents sont traités de la même manière. Le lecteur intéressé souhaitera peut-être consulter l'article Wikipédia TF/IDF pour en savoir plus sur cette méthode de classement.
Ce n'est pas le même type de recherche grep
par exemple. Ceci est plus étroitement lié au moteur de recherche populaire Lucene, bien que nous ne prenions pas actuellement en charge autant de types de requêtes que Lucene. Comme indiqué précédemment, la principale structure de données sous-jacente dans le cadre du PISA est l’ indice inversé . L'index inversé stocke, pour chaque terme, une liste de documents contenant ce terme. Ces listes peuvent être rapidement parcourues pour trouver des documents qui correspondent aux termes de la requête, et ces documents peuvent ensuite être notés, classés et renvoyés à l'utilisateur.
Le principal cas d’utilisation de PISA est de mener des expériences pour approfondir la compréhension du domaine de la recherche d’informations (RI). Dans le domaine des RI, il existe diverses orientations de recherche importantes sur lesquelles se concentrent, depuis l'amélioration de la qualité des résultats (efficacité) jusqu'à l'amélioration de l'évolutivité et de l'efficacité des systèmes de recherche. PISA se concentre principalement sur l'évolutivité et l'efficacité de la recherche en RI, et c'est pourquoi PISA signifie « Indices performants et recherche d'universités ». En bref, PISA est une plateforme permettant de développer de nouvelles innovations en matière de recherche efficace.
Bien que PISA se veut une base d’expérimentation, il convient également parfaitement comme système simple d’indexation et de recherche à usage général.
PISA peut gérer de grandes collections de textes. Par exemple, PISA peut facilement indexer les corpus ClueWeb09B ou ClueWeb12B, qui contiennent chacun plus de 50 millions de documents Web et près de 500 Gio de données textuelles compressées , ce qui donne des index compris entre 10 et 40 Gio, selon le codec de compression. utilisé. Ces index, en fonction de certains détails, peuvent être créés à partir de zéro en 10 à 20 heures environ. De plus, des collections plus importantes peuvent être gérées via le partitionnement d'index qui divise les grands corpus en sous-ensembles plus petits (fragments). Notons cependant que PISA est un système en mémoire , qui vise à répondre à des requêtes basées sur un index résidant entièrement dans la mémoire principale. En tant que telle, l’échelle possible sera limitée par la mémoire principale.
Quelques travaux récents ont comparé PISA. Par exemple, une étude expérimentale sur les méthodes de compression d'index et de traitement des requêtes DAAT réalisée par Antonio Mallia, Michal Siedlaczek et Torsten Suel, parue dans ECIR 2019, a montré que PISA était capable de renvoyer les 10 et 1 000 premiers documents avec une latence moyenne en la plage de 10 à 40 et 20 à 50 millisecondes respectivement, sur une collection contenant 50 millions de documents Web.
PISA est également inclus dans le jeu de référence des moteurs de recherche de Tantivy, qui compte également Tantivy, Lucene et Rucene comme concurrents.
PISA est un fork du projet ds2i lancé par Giuseppe Ottaviano. Le projet ds2i contenait le code source d'un certain nombre d'innovations importantes en matière d'efficacité en matière d'IR, notamment la méthode de compression « Partitioned Elias-Fano ».
Pour ceux qui souhaitent travailler avec PISA, nous suggérons d’examiner les ressources suivantes :
Si vous souhaitez vous impliquer dans PISA, veuillez consulter notre page Contribuer.
Si vous utilisez PISA dans un document de recherche, veuillez citer la référence suivante :
@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}
}