一个小小的站内搜索作品,坚守5年的心得体会

5年,50+版本迭代,不忘初心,始终为了帮助广大站长更容易实现站内搜索功能

一,开发初衷与思路:

基于Lucene.net重头开发一个站内搜索其实挺费时,且需要一定的二开能力,很多人直接组合一些第三方开源的组件,但如果需要解决好搜索质量,兼顾搜准率与召回率,依然需要做不少调整优化的工作,后来我想能否简化一下Lucene.net的使用,所以把分词,配置,索引,搜索等各种底层API等封装成更易于使用的一个中间件(就是上图的SearchEasy.SearchEngine类库),但是因为中间件不好用,干脆就直接把站内搜索的前端也做了,这样用户就无需做任何二次开发,直接在浏览器点点鼠标就可以解决数据导入,创建索引,然后搜索直接就能用了,这个站内搜索系统是这么演化过来的,而且在多年的实践当中,也做了很多细节优化工作。

 

 

二,核心组件:

 

Lucene.net : 搜索引擎的核心类库,第三方开源;

 

Newtonsoft.Json :用于处理JSON的第三方库;

 

TemplateEngine :用于生成静态页面的模板引擎;

 

中文分词:自己开发,没有用第三方的。

 

 

 

三,项目架构

 

基于.NET 4.0框架,传统的三层架构,但在解决方案中的体现是两个项目:

 

SearchEasy.SearchEngine : 搜索引擎类库,整合了Lucene,分词器,以及各种搜索相关的封装类库。

 

SearchEasy.SiteSearch : WEB项目,后台管理与前台搜索代码,搜索部分没有用伪静态,纯动态的,其中的聚合页生成系统是基于模板引擎生成静态页面的。
解决方案示意图:

一个小小的站内搜索作品,坚守5年的心得体会

 

四,心得体会

当然了,最后不得不说,这个小作品真的不是那么好做,能坚守到如今,纯粹靠的是一份情怀的。拿那么长的时间,去任何TO B的软件,估计都能比这个好很多,但从业确确实实帮助了一些站长,认识了不少的站长朋友,也许,收获的见识比本身的收获更多吧。

送给广大技术朋友的一份建议:选择比努力更重要,方向很重要,方向不好不一定能能守得云开见月明

 

但是,产品本身还是不错的,用的站长都说好,方便灵活,简单易用,小众是自然的啦,喜欢折腾与高大上技术的自然选择ES,SOLR去了。

观摩地址:http://www.searcheasy.net/zn

 

上一篇:能够满足这样要求的哈希算法有很多,其中比较著名并且应用广泛的一个哈希算法,那就是MurmurHash 算法。尽管这个哈希算法在 2008 年才被发明出来,但现在它已经广泛应用到 Redis、MemCa


下一篇:python-使用Lucene(PyLucene)查找单个字段术语