用開源搜索引擎定製你的互聯網
很久以前,互聯網很小,小到幾個人就可以索引它們,這些人收集了所有網站的名稱和鏈接,並按主題將它們分別列在頁面或印刷書籍中。隨著萬維網網路的發展,形成了「網站環」形式,具有類似的內容、主題或敏感性的站點捆綁在一起,形成了通往每個成員的循環路徑。環中任何站點的訪問者都可以單擊按鈕以轉到環中的下一個或上一個站點,以發現與其興趣相關的新站點。
又過了一段時間,互聯網似乎變得臃腫不堪了。每個人都在網路上,有很多冗餘信息和垃圾郵件,多到讓你無法找到任何東西。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 start page](/data/attachment/album/202002/19/103603cw77y7sug177tgz7.jpg "YaCy start page")
將 YaCy 添加到你的地址欄
如果你使用的是 Firefox Web 瀏覽器,則只需單擊幾下,即可在 Awesome Bar(Mozilla 給 URL 欄起的名稱)中將 YaCy 設置為默認搜索引擎。
首先,如果尚未顯示,在 Firefox 工具欄中使專用搜索欄顯示出來(你不必使搜索欄保持一直可見;只需要激活它足夠長的時間即可添加自定義搜索引擎)。Firefox 右上角的「漢堡」菜單中的「自定義」菜單中提供了搜索欄。在 Firefox 工具欄上的搜索欄可見後,導航至 localhost:8090
,然後單擊剛添加的 Firefox 搜索欄中的放大鏡圖標。單擊選項將 YaCy 添加到你的 Firefox 的搜索引擎中。
![Adding YaCy to Firefox](/data/attachment/album/202002/19/103605blajddrmfm6eu4ld.jpg "Adding YaCy to 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 添加到白名單。例如:
![Adding YaCy to an ISP router](/data/attachment/album/202002/19/103607akggy63qyg8z33yk.jpg "Adding YaCy to an ISP router")
如果路由器正在進行埠轉發,則必須使用相同的埠將傳入的流量轉發到計算機的 IP 地址。例如:
![Adding YaCy to an ISP router](/data/attachment/album/202002/19/103609new7i6uu46m6l60e.jpg "Adding YaCy to an ISP router")
如果由於某種原因無法調整防火牆設置,那也沒事。YaCy 將繼續以初級模式運行並作為對等搜索網路的客戶端運行。
你的互聯網
使用 YaCy 搜索引擎可以做的不僅僅是被動搜索。你可以強制抓取不太顯眼的網站,可以請求對網站進行網路抓取,可以選擇使用 YaCy 進行本地搜索等等。你可以更好地控制你的互聯網的所呈現的一切。高級用戶越多,索引的網站就越多。索引的網站越多,所有用戶的體驗就越好。加入吧!
via: https://opensource.com/article/20/2/open-source-search-engine
作者:Seth Kenlon 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive