透過 Slack 聯繫:
PISA 是一個能夠在大規模文件集合上運作的文字搜尋引擎。它允許研究人員嘗試最先進的技術,為快速開發提供理想的環境。
PISA 的一些功能如下:
PISA 是一個文字搜尋引擎,儘管「PISA 專案」是一組幫助實驗索引和查詢處理的工具。給定一個文字集合,PISA 可以在此語料庫上建立倒排索引,從而允許搜尋該語料庫。簡而言之,倒排索引是一種高效的資料結構,它透過儲存每個唯一術語的文檔清單來表示文檔語料庫(請參見此處)。在查詢時,PISA 將其索引儲存在主記憶體中以便快速檢索。
簡而言之,PISA 是一個文字搜尋引擎。從文件語料庫(例如維基百科)開始,PISA 可以建立倒排索引,使我們能夠快速搜尋維基百科集合。在最基本的層級上,支援布林AND
和OR
查詢。想像一下,我們想要找到與查詢“烏龍茶”匹配的所有維基百科文檔 - 我們可以運行布爾連接詞( oolong AND
tea )。相反,我們可能對查找包含烏龍茶或茶(或兩者)的文檔感興趣,在這種情況下,我們可以運行布林析取( oolong OR
tea )。
除瞭如上所述的簡單布林匹配之外,我們實際上還可以對文件進行排名。無需贅述,文件按函數進行排名,假設術語越罕見,該詞就越重要。這些排名者也假設某個單字在文件中出現的頻率越高,該文件就越有可能與該單字相關。最後,較長的文檔包含更多的單詞,因此比較短的文檔更有可能獲得更高的分數,因此進行規範化以確保所有文檔得到平等對待。有興趣的讀者可能希望查看 TF/IDF 維基百科文章以了解有關這種排名方法的更多資訊。
例如,這與搜尋grep
的類型不同。這與流行的 Lucene 搜尋引擎關係更密切,儘管我們目前支援的查詢類型不如 Lucene 那麼多。如前所述,PISA 中的主要基礎資料結構是倒排索引。對於每個術語,倒排索引儲存包含該術語的文件清單。可以快速遍歷這些清單以查找與查詢項目相符的文檔,然後可以對這些文檔進行評分、排名並返回給使用者。
PISA 的主要用例是進行實驗以進一步了解資訊檢索 (IR) 領域。在資訊檢索領域,有各種重要的研究方向,從提高結果品質(有效性)到提高搜尋系統的可擴展性和效率。 PISA 主要關注 IR 研究的可擴展性和效率方面,這也是 PISA 代表「學術界績效索引和搜尋」的原因。簡而言之,PISA 是一個開發高效搜尋創新的平台。
雖然 PISA 專注於成為實驗基礎,但它也非常適合用作簡單的通用索引和搜尋系統。
PISA 可以處理大型文字集合。例如,PISA 可以輕鬆索引 ClueWeb09B 或 ClueWeb12B 語料庫,每個語料庫包含超過 5000 萬個 Web 文件和接近 500 GiB 的壓縮文字數據,導致索引大小在 10-40 GiB 範圍內,具體取決於壓縮編解碼器用過的。根據一些細節,這些索引可以在大約 10-20 小時內從頭開始建立。此外,可以透過索引分片來處理較大的集合,索引分片將大型語料庫分解為較小的子集(分片)。然而,我們確實注意到,PISA 是一個記憶體系統,旨在基於完全駐留在主記憶體中的索引來提供查詢服務。因此,可能的規模將受到主記憶體的限制。
最近的一些作品以 PISA 為基準。例如,Antonio Mallia、Michal Siedlaczek 和 Torsten Suel 發表在 ECIR 2019 上的《索引壓縮和 DAAT 查詢處理方法的實驗研究》表明,PISA 能夠返回前 10 和前 1000 個文檔,平均延遲為對於包含5000 萬個Web文件的集合,範圍分別為10-40 和20-50毫秒。
PISA 也被納入 Tantivy 的搜尋引擎基準遊戲中,該遊戲的競爭對手還有 Tantivy、Lucene 和 Rucene。
PISA 是 Giuseppe Ottaviano 發起的 ds2i 計畫的一個分支。 ds2i 專案包含 IR 中許多重要效率創新的原始程式碼,包括「分區 Elias-Fano」壓縮方法。
對於有興趣使用 PISA 的人,我們建議查看以下資源:
如果您想參與 PISA,請查看我們的貢獻頁面。
如果您在研究論文中使用 PISA,請引用以下參考文獻:
@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}
}