DNN搜索实现的学习和疑问


1.       
DNN 搜索的索引库的建立: http://esshs.cnblogs.com/archive/2005/08/18/217808.html
2.        DNN 搜索内容数据库的实现: http://esshs.cnblogs.com/archive/2005/08/15/215491.html
 

一直对搜索功能的实现存在好奇。在学习 DNN 时也特意看了下它的搜索的实现。由于对 asp.net 的站点建设缺少经验。看 DNN 时比较吃力。多亏有各位前辈的 blog 帮助。使得我的学习得以进行下去。这也是我写这个随笔的目的。本身并没有太多的新发现,只是至少为后来人提供一个快速上手的索引,更希望各位看过之后能对我理解上的问题和不了解得地方给与指出和指导。
主要想介绍一下我理解的 DNN search 实现涉及到的流程和类。
DNN 的搜索是基于索引的。而不是基于全文的。具体算法和基于中文的改进从推荐的文档中可以看到。
一方面,从搜索的实现流程来说。先从 searchInput 模块的文本框中中键入关键字。点击按钮后激活的是 searchInput.ascx.vb SearchExecute() 方法。该方法将关键字提交给 Url 并定位到结果页面。由 searchResult 模块的 BindData() 方法。此方法将数据绑定在 DG 上。进行运算并取出数据是由 SearchDataStore(Inherits SearchDataStoreProvider)来实现的。(UI层和BLL层分工明确)

另一方面,从索引的收集和建立上来说。每一个希望被搜索到的模块必须实现Isearchable接口(上面的文章1有很详尽的说明)。而索引的重建由SearchEngine来做。它还调用了另一个Provider——ModuleIndexer(Inherits IndexingProvider)。而时机可有调度线程或手动来控制。

  我现在还不清楚的是DNN中的Url系统。HttpModule掌握的不好。希望大家指点。感谢各位前辈的劳动,使他们的Blog让我的学习能比较轻松。一直在申请加入DNN团队,不知道为什么连回音都没有,郁闷啊。









本文转自 duguguiyu 51CTO博客,原文链接:http://blog.51cto.com/duguguiyu/362839,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值