公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

想让检索代码不再「大海捞针」?就用「Feep! search」。

一款专门面向程序员的搜索引擎,2021年9月才开工,却收录了超过2900万页信息。这样的「编程神器」,你愿意尝试吗?

这两天,草根开发者浮士德发布了一款名为「Feep! search」的搜索引擎。只要在检索框中输入你想找的程序名称,分分钟便能检索出成百上千条成熟代码。

虽然这款「编程神器」还存在着不少问题,却已经令不少苦兮兮的程序猿、程序媛们心驰神往,堪称今年「1024」最好的礼物。

Feep! search

「Feep! search」是一款程序员专用的网络搜索引擎,主要用于编程资源的查找。

虽然名称采用了与雅虎(Yahoo!)相似的结构,但与美国门户网站的明贬实褒(Yahoo原意为乡巴佬)不同,「Feep」在《新黑客词典》中特指「终端发出的柔和电子铃声」,尾部的「!」则代表了想要为用户提供令人难忘的服务。

目前,「Feep! search」能够检索的信息源,包括DevDocs、Hacker News、Kiwix、Stack Exchange等,甚至还包括一些已索引但未爬网的链接,信息总量超过2900万页——这甚至比谷歌1998年推出的第一款搜索引擎还要多(2600万页)。

据网站作者浮士德介绍,「Feep! search」在检索时会查找它所存储的所有信息,对一些数据进行少量排序,并填充到搜索网站的结果页中。

数据混洗位主要用Node.js编写,许多shell脚本将所有内容粘在一起,排名和全文搜索则由ElasticSearch提供支持。这一切都在他家客厅的HP微型服务器里运行。

位于浮士德客厅的「Feep! search」服务器

以程序员们最经典的上手程序「hello word」为例,仅用时27毫秒,「Feep! search」那简洁而不简单的界面便检索出超1万条结果。你可以从中轻松找出许多能够实际运行的成熟代码。

而且,搜索结果的信息来源,也是相当丰富的。

在浮士德的帖子下,不少网友表示「Feep! search」真乃程序员的福音:

「很棒的作品。(我)在同一主题不同变体的三次搜索中得到了一些好的答案和有用的链接。」

也有部分网友在体验后发现了问题:

「好主意,但现在的搜索很糟糕。对『django signals』进行检索,第一页得到了非官方的结果,第二页(1)上的所有链接都断了。搜索『go cobra』则根本没有官方文档。」还在最后提出了一些改进建议。

美中不足

就连作者自己也承认,因为尚未设置任何搜索运算符或高级搜索语法,导致引擎的搜索结果相当多变,搜索结果的排名不能很好地获得展示。

不过,对于一些检索时的常见问题,作者也在「Query help」页面进行了备注:

  • 单词被词干化(例如「walking」、「walk」等都将被转换为「walk-」),并逐个搜索。目前还没有任何方法可以关闭这个功能,或者搜索完整的短语;

  • 非字母数字字符将被忽略(这意味着你不能搜索符号运算符之类的东西。这对于一个专门为程序员设计的搜索引擎来说非常尴尬。这也是我要着重解决的问题之一);

  • 语句的理解非常肤浅:它不寻找同义词,也不理解同一个词在不同的上下文中可能有不同的含义(这与谷歌截然相反,即使你有非常具体的想法,谷歌也会尽力猜测你的其他意思。哪种方法最有用取决于你寻找的方式)。改变查询的措辞可能会得到一组完全不同的结果;

  • 如果没有搜索到你要找的内容,请尝试添加或删除单词。有时看似微小的调整都会产生巨大的差异。您需要的结果可能就在某个地方,即使可能很难找到;

  • 有时候,好的结果有些被埋没了。建议您多浏览几页,看看要找的内容是不是在后面。

值得一提的是,每页检索结果的末端还提供了Google、DuckDuckGo、Bing和Marginalia四种其他搜索引擎的链接,一键即可进入对应词汇在各大引擎中的检索结果。

作者特别向我们推荐了一款独立的DIY搜索引擎Marginalia Search。与「Feep! search」类似,这是一款专注于推荐「你可能不知道网站」的搜索引擎。这个搜索引擎中的软件都是定制而成,所有的爬网和索引都在内部完成的。

小人物的大梦想

「Feep! search」的作者沃尔夫冈·浮士德(Wolfgang Faust)是一名专业软件开发商和业余爱好者。

通过浮士德的个人网站我们可以了解到,虽然曾发表过大大小小上百项程序,但他却是一名不折不扣的草根开发者。

正如浮士德个人网站的Slogan「我做了很多不同的事情」所言,2011年至今,他在GitHub上共更新了111条作品,但账号目前也只有25个粉丝。一款名为「yaml-multiline」的开源软件,总计获得过216颗星和16次引用——这已是浮士德开发生涯的扛鼎之作。

不过,他在两大论坛Hacker News和Reddit上却分别收获了4,004和3,712次「功德」,具有极强的表达欲望,也可以说非常努力了。

不管怎么讲,能制作出一款收录接近3000万页信息的搜索引擎,都是一项十分了不起的成就。

毕竟当年Google刚推出时,也同样问题重重。

参考资料:

https://search.feep.dev/about/

https://news.ycombinator.com/item?id=33494221

https://www.wolfgangfaust.com/

本文转载自:「新智元」,原文:https://url.hi-linux.com/BiEGZ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

你可能还喜欢

点击下方图片即可阅读

vhs: 一款超强大命令行录屏神器,Github 星标 7k+


点击上方图片,『美团|饿了么』外卖红包天天免费领

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

Feep! search:一款面向程序员的搜索引擎,收录信息超 2900 万页!相关推荐

  1. 面向程序员的数据库访问性能优化法则

    面向程序员的数据库访问性能优化法则 特别说明: 1.   本文只是面对数据库应用开发的程序员,不适合专业 DBA , DBA 在数据库性能优化方面需要了解更多的知识: 2.   本文许多示例及概念是基 ...

  2. 【转】面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  3. 面向程序员的精品开源字体:让代码更易读、更美观、更实用

    随着计算机技术的飞速发展,程序员需要处理大量的文本信息,而字体作为信息传达的重要元素,在这个过程中扮演着至关重要的角色.一款精美.实用的字体能够帮助程序员更好地表达自己的思想和感情,提高工作效率和工作 ...

  4. 面向程序员的数据挖掘指南-----第一章:简介

    内容: 寻找事物 本书结构 阅读完本书后你可以做些什么? 为什么数据挖掘很重要?哪些内容可以为我所用? 标题里的"Numerati的古老艺术"是什么意思? 序 如果你每天都能重复做 ...

  5. 学python用什么软件开发-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  6. 最适合python程序员用的笔记本-5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  7. BookChat学习软件—(面向程序员的 IT 互联网开源编程书籍免费阅读)

    ▌BookChat https://www.bookchat.net/ 优点 开源:基于 Apache 2.0 开源协议进行开源,对商业友好 秀气:简洁.美观,没那么多花里胡哨 丰富:注册.登录.搜索 ...

  8. 史上最好用的图标设计软件 - 即时设计- 面向程序员的培训

    史上最好用的图标设计软件 - 即时设计- 面向程序员的培训 内容正在写,请等待 1. 安装 访问.安装 访问 http://www.js.design 百度搜索 即时设计,第一个就是 网页版:可以编辑 ...

  9. 一款适合程序员的 Markdown 简历模版,拒绝花里胡哨

    一款适合 IT 行业的 Markdown 简约简历模版,拒绝花里胡哨 开始使用 (1)安装 Markdown 编辑软件,推荐使用 Typora 编辑器(免费版 Typora 百度网盘下载点此下载). ...

最新文章

  1. D. Colored Rectangles[思维dp]
  2. 前端每日实战:108# 视频演示如何用 CSS 和 D3 创作一个抽象的黑白交叠动画
  3. python 语言教程(3)变量之数字类型
  4. java 文件指定位置插入_java 中利用io流将一个文件插入到另一个文件中的指定位置,指定位置...
  5. 时序数据处理工具-时间序列数据特征提取TsFresh
  6. java将a对象转换为b对象_Java 对象的深复制五种方式
  7. 哐!英特尔的无人机砸中你头顶
  8. c++ 一个函数包括多个返回值判断_整活函数式编程
  9. QT_仿王者荣耀抽奖
  10. python实现bt下载器_Python 实现自动获取种子磁力链接方式
  11. 计算机服务中无spool,打印服务SPOOLSV.EXE自动停止
  12. layui select 默认选中
  13. Google翻译Chrome插件
  14. 自己动手写2D物理引擎-初级篇(1)
  15. ERNIE: Enhanced Language Representation with Informative Entities
  16. 推荐:小众软件——各类软件的精品
  17. linux 命令修改IP(最有效方法)
  18. 百度搜索结果页url参数详解
  19. 四年级关于计算机的知识,小学四年级下册信息技术教案
  20. python获取主板序列号_LabVIEW获取主板序列号和硬盘序列号以进行软件加密

热门文章

  1. qt中使用qwt实现实时曲线显示
  2. 帝企鹅变形记:开放与封闭 马化腾将左右下半生
  3. vue使用el-tabs实现标签页(内存+vuex)
  4. react-ant design mobile - webpack 自定义主题
  5. python在园林中的应用_浅析亭在园林中的应用
  6. 工具 - 分解TexturePacker导出的大图
  7. mysql docker还是rds_rds · 输出自己/docker-mysql - Gitee.com
  8. 基于unity的2D横版游戏开发日志 小结
  9. 使用Meterperter会话获取目标屏幕与键盘记录
  10. Kafka:Docker Compose部署Kafka集群