我正在尋找用於實現Intranet網絡搜索引擎的任何真正免費的替代方法。
我知道 Google Search Appliance(GSA)可能是最好的,但是它是非常昂貴,我確實希望能夠抓取數百萬個頁面。
我嘗試了SearchBlox,除了我發現它的文檔記錄不充分和違反直覺的事實外,它還限制了25.000個文檔,與我要擴展到的水平相比,這幾乎沒有什麼。也許是更好的選擇,但我會考慮升級到商業許可證,但根據經驗,我不會為此付費。
因此,現在我正在尋找其他方法
我正在尋找用於實現Intranet網絡搜索引擎的任何真正免費的替代方法。
我知道 Google Search Appliance(GSA)可能是最好的,但是它是非常昂貴,我確實希望能夠抓取數百萬個頁面。
我嘗試了SearchBlox,除了我發現它的文檔記錄不充分和違反直覺的事實外,它還限制了25.000個文檔,與我要擴展到的水平相比,這幾乎沒有什麼。也許是更好的選擇,但我會考慮升級到商業許可證,但根據經驗,我不會為此付費。
因此,現在我正在尋找其他方法
Solr可以做到這一點。使用它,您可以定義要爬網的數據源並解釋數據。 Solr是免費的並且是開源的。
Solr具有非常快速的搜索引擎(Lucene),可以導入很多數據。它針對諸如 XML
, JSON
或 HTML
之類的“字段狀”數據進行了優化,但是存在包含文本(例如Word,PDF)的所有內容的轉換器,等等。)
如果只需要對幾個Intranet站點(<100.000)進行索引並且可以訪問數據庫,則只需將 Data Import Handler
設置為
否則,您將需要編寫一些自己的東西,將數據發送到服務器。
請記住,這是一個開發工具
,而不是最終用戶程序
。您將需要創建一些界面。 (根據我的經驗,這很容易)
如果您將信息存儲在各個字段中(例如 meta
, title
, url
,內容
,語言
,文件類型
...),您可以專門搜索此字段,從而有可能縮小搜索範圍下。例如,如果Intranet中的所有站點都有一個作者,並且您可以訪問該字段並為其編制索引,則可以搜索該作者的所有文檔,但忽略與他有關的所有文檔。它還支持 fuzzy search
(“搜索”找到“搜索”)
我在一個(和許多搜索引擎Lucene)項目中使用了Solr,對此印象深刻。數據處理引擎的高度靈活性令人難以置信。搜索部分是如此之快,以至於我有一天將其列入清單,以了解其工作原理:)
如果僅需要搜索搜尋器&搜索界面,那麼Solr的配置開銷可能就不是您需要的。但是,如果您需要一種可以檢查30.000.000文檔的工具,那麼可以使用該工具。在我使用的項目中(包含上述文檔數量),與Solr搜索時間相比,我們在網絡延遲方面遇到的麻煩更多。您可以復制索引,並使用將搜索請求分配到其他請求的負載平衡Solr實例。並且和和...此工具的不同優化數量驚人。當然,這附帶了一些可能不太直觀的必要配置。您已經有一個 CMS
來為您創建網站,可能已經有一個 Lucene插件
可供您使用了。
Duckduckgo是Internet爬蟲和搜索引擎。
這是其源代碼: https://github.com/duckduckgo
您可以對其進行編譯,配置為僅對Intranet網站進行爬網,並將其託管在Intranet中的服務器上。
話雖如此,對Web界面進行爬網並不是很有效,您可以如果您可以直接訪問內容的實際存儲位置,則可以做得更好(例如,使用Solr)。這還將使您可以向具有不同訪問權限的人員顯示不同的結果(例如,只有HR人員可以搜索簡歷)。
Sphider或(更好)的 Sphider Plus
到目前為止,我發現它們都很棒。它們幾乎相同,只是Sphider Plus的性能要好上千倍-將原始版本視為“精簡版”。這確實是個記錄。 Sphider plus,這是我主要要討論的功能集。
滿足您要求的功能:
聽起來您還需要對可用站點進行爬網?我設置的一個免費的網絡爬蟲是Heritrix。它是開源的,是Internet存檔的“ Wayback Machine”運行的平台。
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix
然後您將需要我將其與Solr之類的東西結合起來以對搜索進行實際索引編制。