使用開源搜尋引擎 YaCy 的技巧

2020-02-23 11:58:00

無需適應其他人的眼光,而是使用 YaCY 搜尋引擎定義你想要的網際網路。

在我以前介紹 的文章中講述過 YaCy 這個對等peer-to-peer式的搜尋引擎是如何安裝和使用的。YaCy 最令人興奮的一點就是它事實上是一個本地用戶端,全球範圍內的每一個 YaCy 使用者都是構成整個這個分散式搜尋引擎架構的一個節點,這意味著每個使用者都可以掌控自己的網際網路搜尋體驗。

Google 曾經提供過 google.com/linux 這樣的主題簡便方式以便快速篩選出和 Linux 相關的搜尋內容,這個小功能受到了很多人的青睞,但 Google 最終還是在 2011 年的時候把它下線了。

而 YaCy 則讓自定義搜尋引擎變得可能。

自定義 YaCy

YaCy 安裝好之後,只需要存取 localhost:8090 就可以使用了。要自定義搜尋引擎,只需要點選右上角的“管理Administration”按鈕(它可能隱藏在小螢幕的選單圖示中)。

你可以在管理面板中設定 YaCy 對系統資源的使用策略,以及如何跟其它的 YaCy 用戶端進行互動。

YaCy profile selector

例如,點選側欄中的“第一步First steps”按鈕可以設定備用埠,以及設定 YaCy 對記憶體和硬碟的使用量;而“監控Monitoring”面板則可以監控 YaCy 的執行狀況。大多數功能都只需要在面板上點選幾下就可以完成了,例如以下幾個常用的功能。

內網搜尋應用

目前市面上也有不少公司推出了內網搜尋應用,而 YaCy 可以免費為你提供一個。對於能夠通過 HTTP、FTP、Samba 等協定存取的檔案,YaCy 都可以進行索引,因此無論是作為私人的檔案搜尋還是企業內部的本地共用檔案搜尋,YaCy 都可以實現。它可以讓內部網路中的使用者使用你個人的 YaCy 範例來查詢共用檔案,於此同時保持對內部網路以外的使用者不可見。

網路設定

YaCy 在預設情況下就支援隱私和隔離。點選“用例與賬號Use Case & Account”頁面頂部的“網路設定Network Configuration”連結,即可進入網路設定面板設定對等網路。

YaCy network configuration

爬取站點

YaCy 的分散式運作方式決定了它對頁面的爬取是由使用者驅動的。並沒有一個大型公司對整個網際網路上的所有可存取頁面都進行搜尋,對於 YaCy 來說也是這樣,一個站點只有在被使用者指定爬取的前提下,才會被 YaCy 爬取並進入索引。

YaCy 用戶端提供了兩種爬取頁面的方式:你可以手動爬取,並讓 YaCy 根據建議去爬取。

YaCy advanced crawler

手動爬取

手動爬取是指由使用者輸入指定的網站 URL 並啟動 YaCy 的爬蟲任務。只需要點選“高階爬蟲Advanced Crawler”並輸入計劃爬取的若干 URL,然後選擇頁面底部的“進行遠端索引Do Remote indexing”選項,這個選項會讓用戶端向網際網路廣播它要索引的 URL,可選地接受這些請求的用戶端可以幫助你爬取這些 URL。

點選頁面底部的“開始新爬蟲任務Start New Crawl Job”按鈕就可以開始進行爬取了,我就是這樣對一些常用和有用站點進行爬取和索引的。

爬蟲任務啟動之後,YaCy 會將這些 URL 對應的頁面在本地生成和儲存索引。在高階模式下,也就是本地計算機允許 8090 埠流量進出時,全網的 YaCy 使用者都可以使用到這一份索引。

加入爬蟲網路

儘管一些非常敬業的 YaCy 高階使用者已經強迫症般地在網際網路上爬取了很多頁面,但對於全網浩如煙海的頁面而言也只是滄海一粟。單個使用者所擁有的資源遠不及很多大公司的網路爬蟲,但大量 YaCy 使用者如果聯合起來成為一個社群,能產生的力量就大得多了。只要開啟了 YaCy 的爬蟲請求廣播功能,就可以讓其它用戶端參與進來爬取更多頁面。

只需要在“高階爬蟲Advanced Crawler”面板中點選頁面頂部的“遠端爬取Remote Crawling”,勾選“載入Load”旁邊的核取方塊,就可以讓你的用戶端接受其它人發來的爬蟲任務請求了。

YaCy remote crawling

YaCy 監控相關

YaCy 除了作為一個非常強大的搜尋引擎,還提供了很豐富的主題和使用者體驗。你可以在“監控Monitor”面板中監控 YaCy 用戶端的網路執行狀況,甚至還可以了解到有多少人從 YaCy 社群中獲取到了自己所需要的東西。

YaCy monitoring screen

搜尋引擎發揮了作用

你使用 YaCy 的時間越長,就越會思考搜尋引擎如何改變自己的視野,因為你對網際網路的體驗很大一部分來自於你在搜尋引擎中一次次簡單查詢的結果。實際上,當你和不同行業的人交流時,可能會注意到每個人對“網際網路”的理解都有所不同。有些人會認為,網際網路的搜尋引擎中充斥著各種廣告和推廣,同時也僅僅能從搜尋結果中獲取到有限的資訊。例如,假設有人不斷搜尋關於關鍵詞 X 的內容,那麼大部分商業搜尋引擎都會在搜尋結果中提高關鍵詞 X 的權重,但與此同時,另一個關鍵詞 Y 的權重則會相對降低,從而讓關鍵詞 Y 被淹沒在搜尋結果當中,即使這樣對完成特定任務更好。

就像在現實生活中一樣,走出虛擬的世界視野會讓你看到一個更廣闊的世界。嘗試使用 YaCy,看看你發現了什麼。