2013-08-19 38 views
1

我想要實現一對夫婦DotNetNuke的自定義搜索爬蟲在這個7.1版本說明中提到:http://www.dnnsoftware.com/community-blog/cid/153947/Search-Done-Right-in-DNNDotNetNuke的7.1自定義搜索爬蟲

之一將是爲用戶,創建一個目錄函數(它看起來像這樣不包括開箱)。

一個將用於專有的API。

該發佈說明提到您可以添加自己的抓取工具,但我找不到任何關於如何執行此操作的文檔,或者網絡上的任何文檔,並且我有點遺失了DNN源碼嘗試找到默認搜索器的類,更不用說如何實現並安裝一個新的搜索器。

我也看過了Aricie,它在7.1中還沒有工作,還有Search Boost,如果自動完成結果是實際結果而不是關鍵字,那將會很棒。

有人看過實現自定義爬蟲嗎?這個功能太新了嗎?任何人都可以幫助在DNN源文件尋找幫助的地方嗎?

[編輯]

我發現DotNetNuke.Services.Search.IndexingProvider類並創建了一個測試提供一些糟粕添加到索引;我不知道如何註冊這個提供商與搜索引擎,但; DotNetNuke.Services.Search.SearchEngine中的代碼似乎具有對它運行的提供程序的硬編碼引用 - 當然必須是這樣做的配置方式?

+0

出於好奇,你可能想看看我們的LuceneSearch模塊(v1.8)的最新版本;我在codeplex上發佈了它,它與DNN 7.1兼容。 – samy

回答

2

Whelkaholism,

我過去的這個週末去灰普拉薩德的Lucene.NET會議在DNNCon。要實現自定義爬網程序,請通過爲兩種方法創建替代來實現DotNetNuke.Services.Search.Controllers.BaseResultController抽象類:HasViewPermissionGetDocUrl。然後,您將其註冊爲SearchType(DotNetNuke.Services.Search.Entities.SearchType)。我無法在API中找到控制器方法來創建SearchType,因此您可能需要直接在SQL腳本中將記錄添加到SearchType表中。

這就是說,我不認爲這是你想要爲你的解決方案做什麼。您想要索引用戶數據和API中的自定義數據。顯然,用戶索引將被添加到DNN 7.2。請參閱release notes for the beta

要索引來自API的數據,我認爲您要創建一個DNN模塊,該模塊具有新的DotNetNuke.Entities.Modules.ModuleSearchBase的實現,您可以在其中創建GetModifiedSearchDocuments方法的覆蓋並返回SearchDocuments列表。這將使您能夠最大限度地控制來自API的數據如何放入DNN lucene索引。你的模塊不一定要有任何視圖,你只需要在DNN中安裝它並在頁面上放置一個實例。

+1

感謝您的回答;對於這個項目,我使用Search Boost並使用其Web服務功能來構建AJAX結果即用型需求。我會牢記這一點,如果我需要使用香草DNN搜索! – Whelkaholism