summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-04-01 12:08:47 +0800
committereltrac <hi@eltr.ac>2026-04-01 12:08:47 +0800
commit1282dbec41c169dc1e540c30ec769ad759ee3f38 (patch)
tree112300010aded3604775de6510262256da0e5230
parent6b21426996c0f8351ed6aff8412f6a6c44b8f671 (diff)
docs: update draft
-rw-r--r--content/article/search-engine-problem.md10
1 files changed, 9 insertions, 1 deletions
diff --git a/content/article/search-engine-problem.md b/content/article/search-engine-problem.md
index 6fd821fe..58c7100b 100644
--- a/content/article/search-engine-problem.md
+++ b/content/article/search-engine-problem.md
@@ -303,9 +303,17 @@ Marginalia 的存在和他的理念让我开始思考,我使用搜索引擎究
前文提到,搜索引擎有两种:一种是有网络爬虫,维护万维网索引,拥有基础设施的搜索引擎;另一种是元搜索引擎,他们使用其他搜索引擎的搜索结果。显然第一种搜索引擎所耗费的服务器资源更多,开销更大,后者则更容易负担。
+不过这个所谓的开销究竟有多少呢?如果参考 Marginalia,它只索引和爬取一部分万维网,主要是小网站、博客和学术网站,开销是一个月 200 美元。不 Marginalia 提供 API 并且供所有人使用,所以这个开销也包含网络资源等。如果只考虑计算开销和储存开销,自己管理爬虫和索引究竟容不容易负担呢?
+根据 [YaCy Wiki](https://wiki.yacy.net/index.php?title=En:Requirements),自托管一个 YaCy 搜索引擎至少需要 25GB 存储,内存至少需要 256MB——*真的吗?你可是用 Java 写的。* 我在[这个 Reddit 帖子](https://www.reddit.com/r/selfhosted/comments/19eqv5k/google_search_self_hosted_alternative/)下找到了使用 YaCy 一两年的用户的回复,他表示 YaCy 很快就把服务器一两个 TB 的存储吃满了,他不得不用一些优化策略解决问题。
-SearXNG and YaCy
+如果只是索引一两个网站,YaCy Wiki 给出的数据可能是对的,但如果真的要代替 Google 等搜索引擎,普通人能负担得起的服务器肯定是不行的,就算尽可能减少索引的网站,也会吃掉大量的储存。计算开销可能不必担心,但爬虫又是另一个问题。所有的机器人都应该有 `User-agent` 标识表明自己的身份,比如谷歌爬虫的标识叫作 `Googlebot`。众所周知,几乎所有网站都会提供 `robots.txt`,表示他们欢迎哪些机器人,不欢迎哪些机器人。尽管恶意的 AI 爬虫可能会违反 `robots.txt` 给服务器带来极大负担,但我们是有道德的,自己托管爬虫当然要尽可能遵守 `robots.txt`。
+
+那么问题就来了:许多网站可能不欢迎你的爬虫,他们只允许 Google 和 Bing 等大搜索引擎的爬虫,默认禁止其他所有的爬虫。就算违反 `robots.txt`,不少网站也有很多反爬虫手段。如果很多网站都爬不到,就无法建立索引,搜索引擎也就没有数据来源了。自己维护爬虫就跟自己维护 SMTP 服务器一样,也可能受到 IP 影响,如果服务器的 IP 段信誉不好,发出的邮件就更容易被当作垃圾邮件,无法保证送达率,网络爬虫也更容易在网络层被毙掉。
+
+完全自托管搜索引擎的基础设施很困难,有大量资源和精力的人可以尝试。对于其他人,可以选择自托管元搜索引擎,就和 DuckDuckGo 使用 Bing 的搜索结果一样,我们可以从多个搜索引擎聚合搜索结果。
+
+[SearXNG](https://docs.searxng.org/#)
[^1]: 参见:[As We May Think - Wikipedia](https://en.wikipedia.org/wiki/As_We_May_Think)