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