自研Maven毫秒级搜索神器

570 阅读4分钟

起因 最近有小伙伴,在使用Maven仓库进行搜索的时候,总是弹出验证码,这我们也能理解,防爬虫嘛,关键是验证码好复杂啊,让你在十八张低清图里找出所有自行车。 这...平常在代码里找BUG就已经够烦的了,又让我们找,跟你们讲一般人遇到这个,忍忍也就算了,要是遇到脾气爆燥一点的程序员,那也是毫无办法。

1.png 更可气的是,我问了几个在国外同学,它们访问mvnrepository.com 仓库从来就不弹验证码。刚开始我还不相信,然后我自己试了一下,还真就是这是。科学上网就不弹验证码,直接访问就100%弹。

这你们能忍呀,我是忍不了,所以咱要自己搞一个Maven搜索,体验要比它们好,速度还要比他们快,最重要的是所有资源都要在国内服务器上,跟国外网络没关系。

动手开发 说干就干,上周二6.1儿童节的时候,开始设计这个系统,然后排期是在6月3号前完成,在一些细节上,又耽误了两天,6月5号晚上10点钟,才写完最后一行代码,收工回家。

2.png

3.png 但我没有急着上线,因为连续写了5天代码,人多憋慌了,昨天我就给自己放了一天假,去山上骑车了,结果还不如在家写代码。

4.png 所以今天早上我可是带着伤,给大家上线呀,来来来,大家把鼓励打在弹幕上面。好在上线还算顺利,没有为难我这个伤残人士,然后发粉丝群里试用了一下,反馈还不错。

5.png 功能介绍 接下来我就简单和大家讲一下,这个系统的功能以即实现架构。

基本查找,一个页面全部搞定 系统网址是 maven.coderead.cn/ ,在搜索框架中随便输入 artifactId或groupId 就会自动出现结果,然后你选版本复制就可以了,全部都是在一个页面完成的,不用跳来跳去。

6.gif 定制的模糊匹配,在长单词也不怕 有些jar包单词特别的长,我们记不住,这里你记得哪些就输入哪些,结果自动出现,这里用了我自研的模糊匹配算法,匹配任意单词的前几个字母,从左至右匹配。 比如你搜索一个dubbo ,结果里面会出现一堆的dubbo, 你想找apache ,那就把它的几几个母稍微带上,结果就出来。来我们在来输一个比较长的单词,比如(mybatis-spring-boot-starter) 输入少量几个单词即可(myspbootst:org.my)。所以有了它,连我这种只会 “How are you ,fine thank you” 的英语渣渣都不怕了。

7.gif 每周三定时同步,保证数据最新 系统每周三早上会去Maven仓库同步索引,进行热更新的,你不用担心你的Jar包找不到问题,这里会显示最后更新时间。 还有就是大家关心访问速度了,这里有数据都是在国内服务器上,我另外在自掏腰包花2千块钱买了CDN流量,带宽不够这种事情,在我人民币玩家面前是不存在的。还有搜索算法是专门定制的,没有依赖lucene或elasticsearch这些框架,搜索的响应都是毫秒级的,平均响应在30毫秒左右,在加上网络传输也就是100毫秒的事,用一句杜蕾斯的话就是,“你根本就感觉不到它的存在”。 用爱发电,永久免费,永无广告 最后一点,也是最重要一点,它是免费的,而且永久免费。广告也不可能有,也不会让你关注公众号,加小姐姐微信啥的... 咱视频为证,所以你们就放宽了心去安利给其它同学。因为这个系统用的人越多,搜索结果就会越智能,它是基于热度进行排序。但要有一天要是CDN流量费不够了。。。各位看着办呀!哈哈,别想多了,我的意思你们只要点一个赞,我就贴一块钱流量费,你们转发一次我就贴10块。

收藏起来,以备不时这需 好啦,现在大家可以收藏这个网址啦,如果有内容你搜索不到,以及任何能改善这个网站体验的建议,大家都冲我来呀。 Maven 毫秒级搜索神器 :maven.coderead.cn/

我在B站发了一个架构视频,更有意思 www.bilibili.com/video/BV1GQ…