5年,50+版本迭代,不忘初心,始终为了帮助广大站长更容易实现站内搜索功能前端
一,开发初衷与思路:浏览器
基于Lucene.net重头开发一个站内搜索其实挺费时,且须要必定的二开能力,不少人直接组合一些第三方开源的组件,但若是须要解决好搜索质量,兼顾搜准率与召回率,依然须要作很多调整优化的工做,后来我想可否简化一下Lucene.net的使用,因此把分词,配置,索引,搜索等各类底层API等封装成更易于使用的一个中间件(就是上图的SearchEasy.SearchEngine类库),可是由于中间件很差用,干脆就直接把站内搜索的前端也作了,这样用户就无需作任何二次开发,直接在浏览器点点鼠标就能够解决数据导入,建立索引,而后搜索直接就能用了,这个站内搜索系统是这么演化过来的,并且在多年的实践当中,也作了不少细节优化工做。架构
二,核心组件:框架
Lucene.net : 搜索引擎的核心类库,第三方开源;优化
Newtonsoft.Json :用于处理JSON的第三方库;搜索引擎
TemplateEngine :用于生成静态页面的模板引擎;spa
中文分词:本身开发,没有用第三方的。.net
三,项目架构中间件
基于.NET 4.0框架,传统的三层架构,但在解决方案中的体现是两个项目:blog
SearchEasy.SearchEngine : 搜索引擎类库,整合了Lucene,分词器,以及各类搜索相关的封装类库。
SearchEasy.SiteSearch : WEB项目,后台管理与前台搜索代码,搜索部分没有用伪静态,纯动态的,其中的聚合页生成系统是基于模板引擎生成静态页面的。
解决方案示意图:
四,心得体会
固然了,最后不得不说,这个小做品真的不是那么好作,能坚守到现在,纯粹靠的是一份情怀的。拿那么长的时间,去任何TO B的软件,估计都能比这个好不少,但从业确确实实帮助了一些站长,认识了很多的站长朋友,也许,收获的见识比自己的收获更多吧。
送给广大技术朋友的一份建议:选择比努力更重要,方向很重要,方向很差不必定能能守得云开见月明
可是,产品自己仍是不错的,用的站长都说好,方便灵活,简单易用,小众是天然的啦,喜欢折腾与高大上技术的天然选择ES,SOLR去了。