一、速览:它到底解决了什么问题

入门

用搜索引擎查技术问题时,排在前面的常常是搬运站、翻译站和标题党页面。点进去发现内容是机翻的、代码跑不通,白白浪费几分钟。这就是内容农场:它们不是为了回答问题,而是为了让你点进来。

Luxirty Search 的思路很直接:在搜索结果出来之前就把这些站排除掉,而不是等它们出现在页面上再手动隐藏。它基于 Google 的搜索结果,但页面更干净,没有广告,也不做用户跟踪。

它已经有一个公开可用的线上版本,打开 https://search.luxirty.com 就能直接搜索,不需要安装任何东西。下面先讲怎么用,再讲怎么把它搬到自己名下。

二、日常用法:把它加进浏览器的搜索栏

入门

最省事的用法是把它设成浏览器的默认搜索引擎,这样地址栏里直接打字就能搜。

添加时需要一个搜索语法,也就是告诉浏览器「把关键词填到哪个位置」。Luxirty Search 的语法是:

search.luxirty.com/search?q=

具体操作因浏览器而异,但思路一致:进入浏览器设置,找到「搜索引擎 / 管理搜索引擎」,选择「添加」,名称随便填(比如 Luxirty),然后把上面那串填进网址栏。以 Chrome 为例,路径是 设置 → 搜索引擎 → 管理搜索引擎 → 网站搜索 → 添加。

添加完记得把它设为默认,否则地址栏回车时用的还是原来的搜索引擎。

页面里有几个标签可以点。For Program 是最常用的一个:点下去之后,GitHub、Stackoverflow、v2ex、cnblog 这类开发者常用的来源权重会被拉高,排在更前面。相当于自动帮你补了一串 site:github.com 之类的限定词,省得手打。

另外还有一键搜索 v2ex 和 Reddit 的入口,适合想看真人讨论而不是官方文档的时候用。

三、它靠什么屏蔽内容农场

进阶 · 推荐细读

理解这一层,后面的自定义和部署会顺很多。

Luxirty Search 本身不是一个从零写的搜索引擎。它调用的是 Google 的可编程自定义搜索引擎,英文叫 Google CSE(Custom Search Engine,可以理解成 Google 提供的"定制版搜索框",你能规定它搜哪些网站、不搜哪些网站)。

在这个定制后台里,可以配置一份 Annotations(标注清单)。通俗地讲,就是一张"哪些网站屏蔽、哪些网站优先"的名单。Google 在服务器端执行搜索时,就已经照着这张名单把垃圾站排除了。

这跟 uBlackList、Hit by Hidden 这类浏览器插件的区别在于:

  • 插件是前端屏蔽:垃圾结果先出现,插件再把它划掉或藏起来。
  • Luxirty Search 是服务端排除:垃圾结果压根没进返回列表。

用一句话类比:插件像快递到了驿站之后你一个个挑出不要的包裹;Luxirty Search 是在发货环节就不发给你。

完整的屏蔽名单可以在仓库的 docs/block_list.txt 里看到,目前覆盖 CSDN、各类云厂商的开发社区,以及一些 Stackoverflow 的中文翻译站。

四、自建部署:把搜索页放到自己的域名

进阶 · 推荐细读

部署一份自己的 Luxirty Search 有几个实际好处:可以按自己的需求改样式、可以换用自己创建的 Google CSE、也可以随时改屏蔽名单。

前置条件是电脑上装了 Node.js 18 或更高版本,以及 pnpm(Node.js 的包管理工具,可以理解成"装零件用的工具箱")。需要 Node.js 是因为这个项目用 Vue 3 和 Vite 编写,本质是一个网页应用,得先在本机跑起来再打包成静态文件。

拿到代码后,先装依赖再启动本地预览:

pnpm install
pnpm dev

pnpm install 会按项目清单下载所有需要的零件,pnpm dev 会启动一个本地预览地址(通常是 http://localhost:5173)。在浏览器打开它,就能看到搜索页在你电脑上跑起来了,改代码会自动刷新。

确认没问题后打包:

pnpm build

打包产物在 dist 目录下,是一堆静态文件。这意味着你可以把它丢到任何支持静态托管的地方,比如 GitHub Pages、Cloudflare Pages、Netlify、Vercel,或者自己的一台服务器上。

一键部署到 Vercel

使用 Vercel、Netlify 这类平台的网页版时,通常只要填两个值:构建命令 pnpm build,输出目录 dist。它们会自动安装依赖并完成部署。

五、换成你自己的 CSE 与踩坑提醒

深入 · 老手可选

如果你想让搜索结果完全由自己掌控,可以在 https://programmablesearchengine.google.com/about/ 创建一个自己的 CSE,拿到一串叫 cx 的标识码,然后在项目根目录建一个环境变量文件写进去:

VITE_GOOGLE_CSE_CX=你的cx

环境变量指的是在启动项目前先设好的一段配置值,程序运行时会去读它,从而不用把敏感信息写死在代码里。

需要注意:用自己新建的 CSE 部署出来,页面会和官网版本看起来不一样。网站上的 For Program 等标签,是靠 CSE 后台的「优化」功能配置出来的——你得先添加域名,再添加对应的标签,并在标签里勾选想提升权重的站点。这一步不做,标签点了也没效果。

最后是几个已知的限制,提前知道能省下折腾的时间:

  1. 把 Luxirty Search 设为默认引擎后,浏览器地址栏不会自动补全搜索建议(网页内的搜索框可以)。
  2. 无法按时间筛选结果,想找最近一周的内容只能自己看日期。
  3. 没有同义词替换。Google 官网会用近义说法扩展搜索,CSE 不会,所以同样的关键词,这里的结果可能明显少于官网。
  4. 移动端适配不完整,暗黑模式下也有部分元素过亮或过暗,这是仓库里明确写出的待改进项。

六、判断建议:你该不该用它

入门

如果你经常查技术问题,又被内容农场反复绊住,那么直接用它官网的版本就够了,零成本、零配置,把它加进浏览器搜索栏即可。

如果你希望改样式、维护自己的屏蔽名单,或者想部署到团队内部使用,再考虑走自建这条路。项目本身只是 Vue 3 + Vite,会一点 CSS 和 JavaScript 就能看懂,改配色、调布局的门槛不高。

至于那份屏蔽名单——它永远不可能覆盖所有垃圾站。仓库欢迎通过 issue 提交想拉黑或想提权的域名,所以你在使用中遇到漏网的站点,提交一下就是对这个项目的帮助。

项目信息

项目 值
仓库 KoriIku/luxirty-search
语言 CSS
Star 1,680
Fork 163
主页 https://search.luxirty.com

参考链接

延伸阅读

想继续探索?这些同领域的教程可能也适合你: