Entre em contato pelo Slack:
O PISA é um mecanismo de busca de texto capaz de ser executado em coleções de documentos em grande escala. Ele permite que os pesquisadores experimentem técnicas de última geração, proporcionando um ambiente ideal para um rápido desenvolvimento.
Alguns recursos do PISA estão listados abaixo:
O PISA é um mecanismo de busca de texto, embora o "Projeto PISA" seja um conjunto de ferramentas que ajudam a experimentar a indexação e o processamento de consultas. Dada uma coleção de textos, o PISA pode construir um índice invertido sobre esse corpus, permitindo que o corpus seja pesquisado. O índice invertido, simplificando, é uma estrutura de dados eficiente que representa o corpus do documento, armazenando uma lista de documentos para cada termo único (veja aqui). No momento da consulta, o PISA armazena seu índice na memória principal para recuperação rápida.
Em termos muito simples, o PISA é um motor de busca de texto. Começando com um corpus de documentos, por exemplo, a Wikipédia, o PISA pode construir um índice invertido que nos permite pesquisar rapidamente a coleção da Wikipédia. No nível mais básico, as consultas booleanas AND
e OR
são suportadas. Imagine que quiséssemos encontrar todos os documentos da Wikipedia que correspondam à consulta "oolong tea" - poderíamos executar uma conjunção booleana ( oolong AND
tea ). Em vez disso, poderíamos estar interessados em encontrar documentos que contenham oolong ou tea (ou ambos); nesse caso, podemos executar uma disjunção booleana ( oolong OR
tea ).
Além da simples correspondência booleana, conforme discutido acima, podemos classificar documentos. Sem entrar em detalhes, os documentos são classificados por funções que pressupõem que quanto mais raro for um termo, mais importante será a palavra. Esses classificadores também assumem que quanto mais frequentemente uma palavra aparece em um documento, maior a probabilidade de o documento ser sobre essa palavra. Finalmente, documentos mais longos contêm mais palavras e, portanto, têm maior probabilidade de obter pontuações mais altas do que documentos mais curtos, por isso a normalização é realizada para garantir que todos os documentos sejam tratados igualmente. O leitor interessado pode querer examinar o artigo da Wikipedia do TF/IDF para saber mais sobre este método de classificação.
Este não é o mesmo tipo de pesquisa grep
por exemplo. Isso está mais relacionado ao popular mecanismo de pesquisa Lucene, embora atualmente não ofereçamos suporte a tantos tipos de consulta quanto o Lucene. Conforme discutido anteriormente, a principal estrutura de dados subjacente no PISA é o índice invertido . O índice invertido armazena, para cada termo, uma lista de documentos que contêm esse termo. Essas listas podem ser percorridas rapidamente para encontrar documentos que correspondam aos termos da consulta e esses documentos podem então ser pontuados, classificados e devolvidos ao usuário.
O principal caso de uso do PISA é conduzir experimentos para aprofundar a compreensão do campo da Recuperação de Informação (RI). No campo de RI, existem várias direções de pesquisa importantes que estão focadas, desde a melhoria da qualidade (eficácia) dos resultados até a melhoria da escalabilidade e eficiência dos sistemas de pesquisa. O PISA se concentra principalmente no lado da escalabilidade e eficiência da pesquisa de RI, e é por isso que o PISA significa “Índices de Desempenho e Pesquisa para Academia”. Em suma, o PISA é uma plataforma para o desenvolvimento de inovações em pesquisa eficiente.
Embora o PISA esteja focado em ser uma base para experimentação, ele também é perfeitamente adequado para uso como um sistema simples de indexação e pesquisa de uso geral.
O PISA pode lidar com grandes coleções de textos. Por exemplo, o PISA pode indexar facilmente os corpora ClueWeb09B ou ClueWeb12B, cada um contendo mais de 50 milhões de documentos da web e cerca de 500 GiB de dados textuais compactados , resultando em índices que estão na faixa de 10 a 40 GiB, dependendo do codec de compactação. usado. Esses índices, dependendo de alguns detalhes, podem ser construídos do zero em cerca de 10 a 20 horas. Além disso, coleções maiores podem ser tratadas por meio de fragmentação de índice , que divide grandes corpora em subconjuntos menores (fragmentos). Observamos, no entanto, que o PISA é um sistema in-memory , que visa atender consultas baseadas em um índice que reside inteiramente na memória principal. Como tal, a escala possível será limitada pela memória principal.
Alguns trabalhos recentes avaliaram o PISA. Por exemplo, An Experimental Study of Index Compression and DAAT Query Processing Methods de Antonio Mallia, Michal Siedlaczek e Torsten Suel, publicado no ECIR 2019, mostrou que o PISA é capaz de retornar os 10 e os 1000 principais documentos com uma latência média em na faixa de 10 a 40 e 20 a 50 milissegundos , respectivamente, em uma coleção contendo 50 milhões de documentos da web.
O PISA também está incluído no jogo de benchmark do mecanismo de busca da Tantivy, que também tem Tantivy, Lucene e Rucene como concorrentes.
O PISA é uma ramificação do projeto ds2i iniciado por Giuseppe Ottaviano. O projeto ds2i continha o código-fonte para uma série de importantes inovações de eficiência em IR, incluindo o método de compressão "Partitioned Elias-Fano".
Para os interessados em trabalhar com o PISA, sugerimos examinar os seguintes recursos:
Se você quiser se envolver com o PISA, confira nossa página de contribuição.
Se você usar o PISA em um trabalho de pesquisa, cite a seguinte referência:
@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}
}