P2P分布式搜索引擎YaCy

老苏还在 2+5 中,享受着单人单管的待遇,这次的大筛就不参加了


本文完成于 5 月底,最近忙,也一直写不出东西,只能发点旧文出来,如果版本不是发生重大变化,安装方式一般应该不会受时间的影响

什么是 YaCy ?

YaCy 是一个开源的基于 P2P 的分布式网页搜索引擎系统,任何人都可以用 YaCy 为自己创建个人的搜索门户,或者为您的 Intranet 或网页或(共享)文件系统创建内网搜索。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 yacy ,选择第一个 yacy/yacy_search_server,版本选择 latest

docker 文件夹中,创建一个新文件夹 yacy,并在其中建一个子文件夹 data

需要给 data 文件夹添加读写的权限

文件夹 装载路径 说明
docker/yacy/data /opt/yacy_search_server/DATA 存放设置

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
18090 8090
18443 8443

命令行安装

docker cli

SSH 客户端中依次执行下面的命令

修改了默认的 docker 参数中的日志的大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 新建文件夹 yacy 和 子目录
mkdir -p /volume2/docker/yacy/data

# 进入 yacy 目录
cd /volume2/docker/yacy

# 修改目录权限
chmod -R 777 ./data

# 运行容器
docker run -d \
--name yacy \
-p 18090:8090 \
-p 18443:8443 \
-v $(pwd)/data:/opt/yacy_search_server/DATA \
--log-opt max-size=200m \
--log-opt max-file=2 \
yacy/yacy_search_server:latest

docker compose

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3'

services:
yacy:
image: yacy/yacy_search_server:latest
container_name: yacy
ports:
- "18090:8090"
- "18443:8443"
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "2"

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 yacy 和 子目录
mkdir -p /volume2/docker/yacy/data

# 进入 yacy 目录
cd /volume2/docker/yacy

# 修改目录权限
chmod -R 777 ./data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:18090 就能看到主界面

点右上角的 Administrator 可以进入后台设置界面

默认的账号:admin ;默认的密码:yacy,记得要修改,如果你准备发布到互联网的话

中文

左侧菜单进入 Use Case & Accounts ,找到 汉语

选择之后不需要重启或者刷新页面,就会切换为中文

搜索

模式上,老苏使用了默认的 全球网络搜索,这是基于 P2P 模式的,但实际上因为我们的机器在内网,别人是访问不到的

对于老苏这种没有公网 IP 的用户,就算路由器支持 UPnP 也没用

但这不影响我们使用,尝试搜索 群晖

有点意外,居然前面几个都指向了老苏的博客,不知道大家的搜索结果是不是也这样?

参考文档

yacy/yacy_search_server: Distributed Peer-to-Peer Web Search Engine and Intranet Search Appliance
地址:https://github.com/yacy/yacy_search_server

yacy_search_server/Readme.md at master · yacy/yacy_search_server
地址:https://github.com/yacy/yacy_search_server/blob/master/docker/Readme.md