PISA高性能索引和學(xué)術(shù)搜索
PISA(Performant Indexes and Search for Academia)是一個(gè)文本搜索引擎,能夠在大規(guī)模文檔集合上運(yùn)行。它允許研究人員使用最先進(jìn)的技術(shù)進(jìn)行試驗(yàn),從而為快速開發(fā)提供理想的環(huán)境。
下面列出了 PISA 的一些功能:
- 用 C++ 編寫以提高性能;
- 解析、索引和分片功能;
- 實(shí)現(xiàn)了許多索引壓縮方法;
- 實(shí)現(xiàn)了許多查詢處理算法;
- 實(shí)施文件重新排序;
- Free 和 open-source 許可;
PISA 是一個(gè)文本搜索引擎,盡管 "PISA Project"是一套工具,幫助實(shí)驗(yàn)索引和查詢處理。給定一個(gè)文本集合,PISA可以在這個(gè)語料庫上建立一個(gè)倒置的索引,允許語料庫被搜索到。簡(jiǎn)單地說,倒置索引是一種有效的數(shù)據(jù)結(jié)構(gòu),它通過為每個(gè)獨(dú)特的術(shù)語存儲(chǔ)一個(gè)文檔列表來代表文檔語料庫(見這里)。在查詢時(shí),PISA 將其索引存儲(chǔ)在主內(nèi)存中,以便快速檢索。
從一個(gè)文檔的語料庫開始,例如維基百科,PISA 可以建立一個(gè)倒置的索引,使我們能夠快速搜索維基百科的集合。在最基本的層面上,支持 Boolean AND 和 OR queries
除了簡(jiǎn)單的 Boolean matching,如上所述,我們實(shí)際上可以對(duì)文檔進(jìn)行排名。在不深入了解細(xì)節(jié)的情況下,文檔的排名是通過一些函數(shù)來進(jìn)行的,這些函數(shù)假定一個(gè)詞越是罕見,這個(gè)詞就越重要。這些排名器還假定,一個(gè)詞在文檔中出現(xiàn)的頻率越高,文檔就越可能是關(guān)于這個(gè)詞的。最后,較長的文檔包含更多的詞,因此比短的文檔更有可能得到更高的分?jǐn)?shù),所以要進(jìn)行規(guī)范化處理,以確保所有的文檔都被平等對(duì)待。
PISA 的主要用例是進(jìn)行實(shí)驗(yàn)以進(jìn)一步了解信息檢索 (IR) 領(lǐng)域。在 IR 領(lǐng)域內(nèi),有各種重要的研究方向被關(guān)注,從提高結(jié)果質(zhì)量(有效性)到提高搜索系統(tǒng)的可擴(kuò)展性和效率。PISA 主要關(guān)注 IR 研究的可擴(kuò)展性和效率方面,這就是為什么 PISA 代表“Performant Indexes and Search for Academia”。簡(jiǎn)而言之,PISA 是一個(gè)開發(fā)高效搜索創(chuàng)新的平臺(tái)。
雖然 PISA 專注于成為實(shí)驗(yàn)的基礎(chǔ),但它也非常適合用作簡(jiǎn)單的通用索引和搜索系統(tǒng)。
PISA 可以處理大型文本集合。例如,PISA 可以輕松索引 ClueWeb09B 或 ClueWeb12B 語料庫,每個(gè)語料庫包含超過 5000 萬個(gè) Web 文檔和接近 500 GiB 的壓縮文本數(shù)據(jù),根據(jù)壓縮編解碼器的不同,索引范圍在 10-40 GiB用過的。根據(jù)一些細(xì)節(jié),這些索引可以在大約 10-20 小時(shí)內(nèi)從頭開始構(gòu)建。此外,更大的集合可以通過索引分片來處理,索引分片 將大型語料庫分成更小的子集(分片)。然而,PISA 是一個(gè)內(nèi)存系統(tǒng),旨在基于完全駐留在主內(nèi)存中的索引來提供查詢服務(wù)。因此,可能的規(guī)模將受到主存儲(chǔ)器的限制。
PISA 是由 Giuseppe Ottaviano 發(fā)起的 ds2i 項(xiàng)目的一個(gè)分支。ds2i 項(xiàng)目包含 IR 中許多重要的效率創(chuàng)新的源代碼,包括“Partitioned Elias-Fano”壓縮方法。
