DNN搜索引擎研究
几个月前,研究一下DNN的搜索引擎机制和原理。研究的起因是,想使用DNN的搜索引擎,但是发现它对中文的支持非常之差,为了改进它,使之能够支持中文,所以开始探究它的原理。由于研究过程中涉及了DNN的很多项目和源码,如果通过文字将其原理写出来,并且使看的人能够清楚明白,以我的文字表达能力恐怕有些困难,因此做了一个PPT,试图通过图文并茂的直观形式,使大家对DNN的搜索引擎有所了解。
该PPT的内容均为个人研究成果,期间参考了网上的一些资料和DNN3.2.2的英文文档,主要是详细阅读了DNN相关的源码,若有谬误,欢迎指正。在PPT的最后,我提出了改进DNN搜索引擎的设想,事实上,现在我已经找出了一种支持中、英文的分词方法,替代了DNN原有的分词,达到了使搜索引擎对中英文都支持的目的,并且已经投入了使用,效果良好。如果大家有兴趣,我会考虑写后续的文章。
总的来说,DNN的搜索引擎的要点可以分为三个部分:
1、在DNN的架构中,提供了一个ISearchable的接口,只要实现这个接口的模块,都可以作为搜索的数据源。比如DNN自带的Text/Html模块,就实现了这个接口,搜索的结果中就会包括Text/Html模块的内容。同样的,你如果想让自己写的模块被搜索引擎收录的话,你就要实现ISearchable接口。
2、DNN使用调度机制对数据源进行分词。也就是说,你在页面上加入了一个Text/Html模块,并且录入了一篇文章后,要等待DNN的搜索引擎调度执行之后,这篇文章的内容才可以被搜索引擎搜索到,而不会马上显示在搜索结果中,因为调度是定时执行的。
3、DNN为实现搜索引擎,撰写了一系列的工程项目,凡是与Search字眼相关的,比如DotNetNuke.SearchInput、DotNetNuke.SearchResults等。本文提供的PPT,主要是对这些工程项目进行分析,对于调度并没有深入研究。
特别说明:请大家下载PPT后,使用放映模式观看,效果最佳,不要在PowerPoint软件里翻页,因为我使用了很多动态效果模拟DNN搜索引擎的执行过程。
点击下载:DNN搜索引擎研究
该PPT的内容均为个人研究成果,期间参考了网上的一些资料和DNN3.2.2的英文文档,主要是详细阅读了DNN相关的源码,若有谬误,欢迎指正。在PPT的最后,我提出了改进DNN搜索引擎的设想,事实上,现在我已经找出了一种支持中、英文的分词方法,替代了DNN原有的分词,达到了使搜索引擎对中英文都支持的目的,并且已经投入了使用,效果良好。如果大家有兴趣,我会考虑写后续的文章。
总的来说,DNN的搜索引擎的要点可以分为三个部分:
1、在DNN的架构中,提供了一个ISearchable的接口,只要实现这个接口的模块,都可以作为搜索的数据源。比如DNN自带的Text/Html模块,就实现了这个接口,搜索的结果中就会包括Text/Html模块的内容。同样的,你如果想让自己写的模块被搜索引擎收录的话,你就要实现ISearchable接口。
2、DNN使用调度机制对数据源进行分词。也就是说,你在页面上加入了一个Text/Html模块,并且录入了一篇文章后,要等待DNN的搜索引擎调度执行之后,这篇文章的内容才可以被搜索引擎搜索到,而不会马上显示在搜索结果中,因为调度是定时执行的。
3、DNN为实现搜索引擎,撰写了一系列的工程项目,凡是与Search字眼相关的,比如DotNetNuke.SearchInput、DotNetNuke.SearchResults等。本文提供的PPT,主要是对这些工程项目进行分析,对于调度并没有深入研究。
特别说明:请大家下载PPT后,使用放映模式观看,效果最佳,不要在PowerPoint软件里翻页,因为我使用了很多动态效果模拟DNN搜索引擎的执行过程。
点击下载:DNN搜索引擎研究