Marginalia搜索引擎:升级后的在线状态和所有权变更检测系统

2025-06-19

Marginalia搜索引擎团队开发了一个新系统“ping-process”,用于检测服务器在线状态和网站重大变更(包括所有权变更和域名停放)。该系统主要依靠HTTP HEAD请求和DNS查询,通过分析证书细节、安全姿态、服务器头部等信息来识别变更。数据存储在“快照表”和“事件表”中,前者存储最新信息,后者存储历史事件。系统克服了调度和证书验证等挑战,初步成功识别大量域名停放事件,未来将进一步完善所有权变更检测模型,并应用于爬虫策略优化。

阅读更多
开发

搜索引擎PDF索引:从图像到文本的挑战与解决方案

2025-05-13

搜索引擎近期获得了索引PDF文件的能力,但从PDF中提取文本信息远比想象中复杂。PDF并非文本格式,而是图形格式,文本以字形坐标的形式存在,可能旋转、重叠或无序排列。文章详细介绍了如何改进PDFBox的PDFTextStripper类,通过统计页面字体大小和行间距等特征,更有效地识别标题、段落等语义信息,从而提升PDF文本提取的准确性和适用性,最终实现对PDF内容的有效索引。

阅读更多
开发 PDF索引

搜索引擎爬虫优化:从99.9%到100%的漫长征程

2025-03-27

搜索引擎爬虫在抓取网页时,总是会在最后几个域名上耗费数天时间。最近,迁移到新的爬取数据后,内存需求降低了80%,爬取任务数量增加,导致99.9%的爬取在4天内完成,剩余0.1%却耗时一周。问题在于网站规模遵循帕累托分布,一些大型网站(尤其学术网站,拥有大量子域名和文档)以及爬虫对每个域名的并发任务限制。最初随机排序导致大型网站启动较晚,之后尝试按子域名数量排序,却引发了对博客主机的大量并发请求。最终,通过添加请求延迟抖动和调整排序策略,优先处理子域名数量超过8的网站,一定程度上解决了问题,但批量爬取模型的固有缺陷仍需进一步优化。

阅读更多
开发 爬虫优化

AI创业公司:如何成为一个更糟糕的网民?

2025-03-22

这篇文章以讽刺的口吻,讲述了一个AI创业公司为了获取训练数据,不择手段地爬取网络数据的故事。他们无视robots.txt,伪造user-agent,肆意爬取表单数据、Git仓库数据,甚至连接邻居的wifi。他们不使用连接池,不关闭连接,故意丢包,一切只为了快速获取数据,体现了AI创业公司不顾一切的疯狂和对规则的无视。最终,他们虽然获得了数据,但却付出了声誉受损的代价,这篇文章用幽默的笔触讽刺了部分AI创业公司不择手段追求成功的行为。

阅读更多
创业

独立开发一年: NLnet 资助项目的总结

2024-06-19

本文是作者回顾过去一年独立开发搜索引擎 Marginalia 的总结。作者从 NLnet 获得资助,完成了项目的初始开发目标,包括改进代码库、优化数据存储格式、简化系统操作、提升查询解析能力等。作者坦率地分享了独自创业的经验和挑战,例如工作与生活的平衡、项目规划的风险等,并展望了未来的发展方向,包括改进索引的词位置分辨率、扩大索引规模以及探索新的功能。

阅读更多

费曼的花园

2024-05-26

本文介绍了费曼算法,一种解决难题的思考方法。其核心是将问题写下来,深入思考,然后写下解决方案。强调了思考是一个后台进程,需要时间来连接信息点。文章建议远离干扰,让大脑处理信息,并及时记录出现的见解。作者分享了个人经历,说明了该方法的有效性,并将其比喻为园艺,强调了输入信息的质量对思考结果的影响。

阅读更多