我想实现本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
中的代码似乎有对其运行的提供程序的硬编码引用 - 当然必须是这样做的配置方式吗?
答案 0 :(得分:2)
Whelkaholism,
上周末,我在DNNCon参加了Ash Prasad的Lucene.NET会议。要实现自定义搜寻器,您可以通过为两种方法创建替代来实现DotNetNuke.Services.Search.Controllers.BaseResultController
抽象类:HasViewPermission
和GetDocUrl
。然后将其注册为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中并将实例放置在页面上。