上手開源的對等 Web 索引器 YaCy。
很久以前,網際網路很小,小到幾個人就可以索引它們,這些人收集了所有網站的名稱和連結,並按主題將它們分別列在頁面或印刷書籍中。隨著全球資訊網網路的發展,形成了“網站環”形式,具有類似的內容、主題或敏感性的站點捆綁在一起,形成了通往每個成員的迴圈路徑。環中任何站點的訪問者都可以單擊按鈕以轉到環中的下一個或上一個站點,以發現與其興趣相關的新站點。
又過了一段時間,網際網路似乎變得臃腫不堪了。每個人都在網路上,有很多冗餘資訊和垃圾郵件,多到讓你無法找到任何東西。Yahoo 和 AOL、CompuServe 以及類似的服務各自採用了不同的方法來解決這個問題,但是直到谷歌出現後,現代的搜尋模型才得以普及。按谷歌的做法,網際網路應該透過搜尋引擎進行索引、排序和排名。
為什麼選擇開源替代品?
像谷歌和 DuckDuckGo 這樣的搜尋引擎顯然是卓有成效的。你可能是透過搜尋引擎訪問的本站。儘管對於因主機沒有選擇遵循最佳化搜尋引擎的最佳實踐從而導致會內容陷入困境這件事仍存在爭論,但用於管理豐富的文化、知識和輕率的資訊(即網際網路)的現代解決方案是冷冰冰的索引。
但是也許出於隱私方面的考慮,或者你希望為使網際網路更加獨立而做出貢獻,你或許不願意使用谷歌或 DuckDuckGo。如果你對此感興趣,那麼可以考慮參加 YaCy,這是一個對等網際網路索引器和搜尋引擎。
安裝 YaCy
要安裝並嘗試 YaCy,請首先確保已安裝 Java。如果你使用的是 Linux,則可以按照我的《如何在 Linux 上安裝 Java》中的說明進行操作。如果你使用 Windows 或 MacOS,請從 AdoptOpenJDK.net 獲取安裝程式。
安裝 Java 後,請根據你的平臺下載安裝程式。
如果你使用的是 Linux,請解壓縮 tarball 並將其移至 /opt
目錄:
$ sudo tar --extract --file yacy_*z --directory /opt
根據下載的安裝程式的說明啟動 YaCy。
在 Linux 上,啟動在後臺執行的 YaCy:
$ /opt/startYACY.sh &
在 Web 瀏覽器中,導航到 localhost:8090
並進行搜尋。
將 YaCy 新增到你的位址列
如果你使用的是 Firefox Web 瀏覽器,則只需單擊幾下,即可在 Awesome Bar(Mozilla 給 URL 欄起的名稱)中將 YaCy 設定為預設搜尋引擎。
首先,如果尚未顯示,在 Firefox 工具欄中使專用搜尋欄顯示出來(你不必使搜尋欄保持一直可見;只需要啟用它足夠長的時間即可新增自定義搜尋引擎)。Firefox 右上角的“漢堡”選單中的“自定義”選單中提供了搜尋欄。在 Firefox 工具欄上的搜尋欄可見後,導航至 localhost:8090
,然後單擊剛新增的 Firefox 搜尋欄中的放大鏡圖示。單擊選項將 YaCy 新增到你的 Firefox 的搜尋引擎中。
完成此操作後,你可以在 Firefox 首選項中將其標記為預設值,或者僅在 Firefox 搜尋欄中執行的搜尋中選擇性地使用它。如果將其設定為預設搜尋引擎,則可能不需要專用搜尋欄,因為 Awesome Bar 也使用預設引擎,因此可以將其從工具欄中刪除。
對等搜尋引擎如何工作
YaCy 是一個開源的分散式搜尋引擎。它是用 Java 編寫的,因此可以在任何平臺上執行,並且可以執行 Web 爬網、索引和搜尋。這是一個對等(P2P)網路,因此每個執行 YaCy 的使用者都將努力地不斷跟蹤網際網路的變化情況。當然,沒有單個使用者能擁有整個網際網路的完整索引,因為這將需要一個資料中心來容納,但是該索引分佈在所有 YaCy 使用者中且是冗餘的。它與 BitTorrent 非常相似(因為它使用分散式雜湊表 DHT 來引用索引條目),只不過你所共享的資料是單詞和 URL 關聯的矩陣。透過混合雜湊表返回的結果,沒人能說出誰搜尋了哪些單詞,因此所有搜尋在功能上都是匿名的。這是用於無偏見、無廣告、未跟蹤和匿名搜尋的有效系統,你只需要使用它就加入了它。
搜尋引擎和演算法
索引網際網路的行為是指將網頁分成單個單詞,然後將頁面的 URL 與每個單詞相關聯。在搜尋引擎中搜尋一個或多個單詞將獲取與該查詢關聯的所有 URL。YaCy 客戶端在執行時也是如此。
客戶端要做的另一件事是為你的瀏覽器提供搜尋介面。你可以將 Web 瀏覽器指向 localhost:8090
來搜尋 YaCy,而不是在要搜尋時導航到谷歌。你甚至可以將其新增到瀏覽器的搜尋欄中(取決於瀏覽器的可擴充套件性),因此可以從 URL 欄中進行搜尋。
YaCy 的防火牆設定
首次開始使用 YaCy 時,它可能執行在“初級”模式下。這意味著你的客戶端爬網的站點僅對你可用,因為其他 YaCy 客戶端無法訪問你的索引條目。要加入對等環境,必須在路由器的防火牆(或者你正在執行的軟體防火牆)中開啟埠 8090,這稱為“高階”模式。
如果你使用的是 Linux,則可以在《使用防火牆讓你的 Linux 更加強大》中找到有關計算機防火牆的更多資訊。在其他平臺上,請參考作業系統的文件。
網際網路服務提供商(ISP)提供的路由器上幾乎總是啟用了防火牆,並且有太多種類的防火牆無法準確說明。大多數路由器都提供了在防火牆上“打洞”的選項,因為許多流行的聯網遊戲都需要雙向流量。
如果你知道如何登入路由器(通常為 192.168.0.1 或 10.1.0.1,但可能因製造商的設定而異),則登入並查詢配置皮膚來控制“防火牆”或“埠轉發”或“應用”。
找到路由器防火牆的首選項後,將埠 8090 新增到白名單。例如:
如果路由器正在進行埠轉發,則必須使用相同的埠將傳入的流量轉發到計算機的 IP 地址。例如:
如果由於某種原因無法調整防火牆設定,那也沒事。YaCy 將繼續以初級模式執行並作為對等搜尋網路的客戶端執行。
你的網際網路
使用 YaCy 搜尋引擎可以做的不僅僅是被動搜尋。你可以強制抓取不太顯眼的網站,可以請求對網站進行網路抓取,可以選擇使用 YaCy 進行本地搜尋等等。你可以更好地控制你的網際網路的所呈現的一切。高階使用者越多,索引的網站就越多。索引的網站越多,所有使用者的體驗就越好。加入吧!
via: https://opensource.com/article/20/2/open-source-search-engine
作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出