DotNetNuke 7.1自定义搜索爬虫

时间:2013-08-19 14:30:32

标签: .net search dotnetnuke dotnetnuke-7

我想实现本7.1版本说明中提到的几个DotNetNuke自定义搜索抓取工具:http://www.dnnsoftware.com/community-blog/cid/153947/Search-Done-Right-in-DNN

一个是用户,创建一个目录功能(看起来这不包括在开箱即用)。

一个是专有API。

发行说明中提到您可以添加自己的抓取工具,但我找不到任何关于如何执行此操作的文档,或者网络上的任何内容,而且我有点迷失DNN来源尝试找到默认抓取工具的类,更不用说如何实现和安装新的。

我还看过Aricie,它在7.1中不起作用,以及Search Boost,如果自动完成结果是实际结果而不是关键字,那将会很棒。

是否有人考虑过实施自定义抓取工具?这个功能太新了吗?任何人都可以帮助在DNN来源寻求帮助吗?

[编辑]

我找到了DotNetNuke.Services.Search.IndexingProvider类并创建了一个测试提供程序来为索引添加一些浮渣;我不知道如何使用搜索引擎注册此提供程序; DotNetNuke.Services.Search.SearchEngine中的代码似乎有对其运行的提供程序的硬编码引用 - 当然必须是这样做的配置方式吗?

1 个答案:

答案 0 :(得分:2)

Whelkaholism,

上周末,我在DNNCon参加了Ash Prasad的Lucene.NET会议。要实现自定义搜寻器,您可以通过为两种方法创建替代来实现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中并将实例放置在页面上。