1

我想实现几个 DotNetNuke 自定义搜索爬虫,如本 7.1 发行说明中所述: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似乎对它运行的提供程序进行了硬编码引用-肯定必须是这样做的配置方式吗?

4

1 回答 1

2

轮回主义,

上周末我在 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。请参阅beta 的发行说明

要索引来自 API 的数据,我认为您想创建一个 DNN 模块,该模块具有新的实现DotNetNuke.Entities.Modules.ModuleSearchBase,您可以在其中创建GetModifiedSearchDocuments方法的覆盖并返回 SearchDocuments 列表。这将使您能够最大程度地控制来自 API 的数据如何放入 DNN lucene 索引中。您的模块不必有任何视图,您只需将其安装在 DNN 中并在页面上放置一个实例。

于 2013-10-21T17:30:04.873 回答