当前位置: 首页 > news >正文

SearXNG

SearXNG

什么是 SearXNG ?说白了,其实就是一个免费开源的搜索引擎。那为什么要本地安装它呢?

看它官网的解释(翻译),当然,其中官方也有一篇文档解释了为什么需要部署使用私有示例:为什么使用私有实例?

image-20250404172613830

同时,其本地部署成功,可以向本地的其他服务(自己开发的)提供搜索 API,使其可以具备搜索功能,在如今 AI 爆火的场景下,显得格外实用(为 AI 赋能,使其具有实时搜索的功能等)

那么,如何在本地安装属于自己的 SearXNG 搜索引擎呢?

本地安装 SearXNG

这里采用 Docker 部署的方式(方便快捷),所以需要本地具备 Docker 、Git 等前置条件,没有则查看这篇文章进行安装和配置 Docker:

  • 安装 Docker
  • 安装Docker - CSDN

如果准备就绪,那么就开始吧~

克隆 SearXNG 仓库

SearXNG 官方为我们准备了一个 searxng-docker 仓库,专门用于 Docker 进行部署,使用下面的 git 命令进行拉取

git clone https://github.com/searxng/searxng-docker.git

拉取成功之后,进入其中的目录(searxng-docker 或 searxng-docker-master),如果是 windows 则直接点击进入目录即可,如果是 Linux 或其他非图形化界面则通过下面的命令

cd searxng-docker

修改 docker-compose.yaml 文件

修改 docker-compose.yaml 文件,将其中的 127.0.0.1:8080:8080修改为 8088:8080(或者使用其他端口映射,只需要去掉前面的 127.0.0.1 即可),允许外部进行访问。

image-20250408163034365

修改 settings.yml 文件

settings.yml文件位于 searxng 文件夹中,如果需要给其他服务提供 API 服务,则需要添加下面的配置

search:formats:- html- json  # 必须添加,否则 API 调用报 403 错误

并且修改下面的配置(否则,其他服务调用可能会触发too many requests报错)

server:limiter: false  # can be disabled for a private instance

当然,细心一点的同学一定已经发现这个配置文件中还有一个secret_key,并且后面跟上了一个注释:# change this!,这个配置项的作用是加密签名用户会话,防止会话数据被篡改或伪造,确保用户身份和会话状态的合法性的。

image-20250408171020480

所以也是需要修改的,这里提供的修改办法是通过生成一段64位随机字符串作为secret_key,为了方便就直接用网上生成随机字符串的网站随机生成了一个(随机字符串生成器)

image-20250408171235883

然后选择一个替换上去

image-20250408171340869

image-20250408171404122

然后 Ctrl + S 进行保存

使用 docker-compose 启动 SearXNG 服务

上述步骤完成之后,回到之前的 searxng-docker (包含 docker-compose.yaml 文件)目录,然后输入下面的命令

docker compose up -d

然后 Docker 会自动拉取和启动对应的容器,部署成功之后会如下图所示

image-20250408172428181

然后访问http://localhost:8088,如果看到下面的页面,证明 SearXNG 已经本地部署成功

image-20250408172546433

随便搜索一点内容验证是否能够正常使用

image-20250408172628368

很好用!没有任何广告,剩下的其他功能可以自行探索~


tips:使用其他服务进行调用搜索时,遵循下面的格式

http://localhost:8088/search?q=xxx&format=json&engines=bing,google

其中的q表示搜索内容,format表示搜索返回结果的格式(一般为 json),engines为获取哪些搜索引擎的结果(不加默认获取全部搜索引擎的结果),关于其他的 API 参数可以参考官方文档:搜索 API — SearXNG 文档


http://www.mrgr.cn/news/97626.html

相关文章:

  • MCP基础学习一:MCP概述与基础
  • Linux 性能调优之CPU调优认知
  • 【回眸】Linux 内核 (十三)进程间通讯 之 共享内存
  • QML Loader:动态加载与控件创建
  • MCP-Playwright: 赋予AI模型操控浏览器的能力
  • c# 数据结构 链表篇 有关单链表的一切
  • 力扣hot100_回溯(2)_python版本
  • Wideband Sparse Reconstruction for Scanning Radar论文阅读
  • 【Pandas】pandas DataFrame infer_objects
  • AnimateCC基础教学:随机抽取花名册,不能重复
  • nginx如何实现负载均衡?
  • Python 快速搭建一个小型的小行星轨道预测模型 Demo
  • 数字电子技术基础(四十)——使用Digital软件和Multisim软件模拟显示译码器
  • C++隐式转换的机制、风险与消除方法
  • Model Context Protocol(MCP)介绍
  • 机器学习 Day09 线性回归
  • 0基础 | 硬件 | LM386芯片
  • MySQL基础 [六] - 内置函数+复合查询+表的内连和外连
  • 解决MPU6050 驱动发现读取不出来姿态角度数据
  • Rust 是如何层层防错的