yggverse / yggo
此包已被弃用且不再维护。没有建议的替代包。
YGGo! 分布式网络搜索引擎
dev-main
2023-11-25 17:37 UTC
Requires
- php: >=8.1
- ashtokalo/php-translit: ^0.2.0
- jdenticon/jdenticon: ^1.0
- symfony/css-selector: ^6.3
- symfony/dom-crawler: ^6.3
- yggverse/cache: >=0.3.0
- yggverse/parser: >=0.1.0
This package is auto-updated.
Last update: 2023-12-25 17:48:51 UTC
README
项目已存档。请访问 Yo! - 基于 Manticore 搜索的 YGGo 项目的下一代。
YGGo! - 分布式网络搜索引擎
受 Yggdrasil 生态系统启发而编写。该引擎可以用于抓取常规网站、小型商业资源、本地网络。
项目目标 - 简单的界面、清晰的架构和轻量级服务器需求。
概述
https://github.com/YGGverse/YGGo/tree/main/media
在线实例
http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggo/
数据库快照
- 17-09-2023
http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/en/torrent/15
要求
php8^
php-dom
php-xml
php-pdo
php-curl
php-gd
php-mbstring
php-zip
php-mysql
php-memcached
memcached
sphinxsearch
安装
git clone https://github.com/YGGverse/YGGo.git
cd YGGo
composer install
设置
- 服务器配置
/example/environment
- 网站根目录是
/src/public
- 使用存储在
/database
文件夹中的 MySQL Workbench 项目部署数据库 - 安装 Sphinx Search Server
- 配置示例在
/config
文件夹中展示 - 确保
/src/storage/cache
、/src/storage/tmp
、/src/storage/snap
文件夹可写 - 按照 示例 设置
/src/crontab
- 要启动爬虫,请使用搜索表单或 CLI 添加至少一个初始 URL
JSON API
构建第三方应用程序/索引分发。
可以通过 API_ENABLED
选项启用或禁用
地址
/api.php
搜索
返回搜索结果。
可以通过 API_SEARCH_ENABLED
选项启用或禁用
请求属性
GET action=search - required
GET query={string} - optional, search request, empty if not provided
GET type={string} - optional, filter mime type of available or empty
GET page={int} - optional, search results page, 1 if not provided
GET mode=SphinxQL - optional, enable extended SphinxQL syntax
主机分布
返回使用 API_HOSTS_FIELDS
选项提供的字段收集到的主机。
可以通过 API_HOSTS_ENABLED
选项启用或禁用
请求属性
GET action=hosts - required
应用程序清单
返回满足相同的 CRAWL_MANIFEST_API_VERSION
和 DEFAULT_HOST_URL_REGEXP
条件的节点信息。
可以通过 API_MANIFEST_ENABLED
选项启用或禁用
请求属性
GET action=manifest - required
搜索文本过滤
默认构造
word prefix:
yg*
operator OR:
hello | world
operator MAYBE:
hello MAYBE world
operator NOT:
hello -world
strict order operator (aka operator "before"):
aaa << bbb << ccc
exact form modifier:
raining =cats and =dogs
field-start and field-end modifier:
^hello world$
keyword IDF boost modifier:
boosted^1.234 boostedfieldend$^1.234
扩展语法
https://sphinxsearch.com/docs/current.html#extended-syntax
可以通过以下属性启用
GET m=SphinxQL
路线图
基本功能
- 网页全文排名搜索
- Sphinx
- 无限内容MIME爬取
- 兼容IPv4/IPv6网络的灵活设置
- 扩展搜索语法支持
- 压缩页面历史快照,多提供商存储同步
- 本地(无限位置)
- 远程FTP(无限镜像)
- 以隐私为导向的下载计数,流量控制
用户界面
- CSS仅用,无JS的界面
- 独特的宿主标识图标
- 内容MIME标签(#1)
- 页面索引探索器
- 元数据
- 快照历史
- 引荐者
- 顶级宿主页面
- 安全媒体预览
- 匹配的搜索结果高亮显示
- 通过内容快照历史的时间机器功能
API
- 索引API
- 清单
- 搜索
- 宿主
- 快照
- 上下文广告API
爬虫
- 通过正则表达式规则自动爬取链接
- 页面
- 清单
- 支持robots.txt / robots元标签(#2)
- 每个宿主的具体规则配置
- 达到磁盘配额时自动停止爬取
- 支持事务以防止队列故障导致的数据丢失
- 通过清单API在YGGo节点之间进行分布式索引爬取
- MIME内容类型设置
- 禁止非条件链接以防止额外请求
- 调试日志
- 索引主页和更短的URI具有更高的优先级
- 页面重定向时收集目标位置链接
- 收集引荐页面(包括重定向)
- 在PR计算上支持URL别名
- 通过CSS选择器收集宿主页面的DOM元素
- 每个宿主的自定义设置
- 支持XML馈送
- 站点地图
- RSS
- Atom
- 调色板图像索引/过滤器
- 根据可用的CPU资源进行爬取队列平衡器
- 网络集成
清理器
- 通过超时重置禁止的页面
- 数据库表优化
命令行界面
*CLI界面仍在建设中,使用时请自行承担风险!
- 帮助
- 数据库
- 优化 [x] crontab
- 爬取
- 清理
- 宿主设置
- 获取
- 设置
- 列表
- 删除
- 刷新
- 宿主页面
- 添加
- 排名
- 重新索引
- 宿主页面快照
- 修复
- 数据库
- 文件系统
- 重新索引
- 截断
- 修复
其他
- 用于有用的索引管理的管理面板
- 部署工具
- 测试
- 文档
贡献
请在创建PR之前,为您fork中的每个补丁在main|sqliteway树中创建一个新的分支。
git checkout main
git checkout -b my-pr-branch-name
参见: SQLite树
捐赠给贡献者
许可证
- 引擎源代码 MIT许可证
- 主页动画由 alvarotrigo 提供
- CLI标志由 patorjk.com 提供
- 转写由 php-translit 提供
- Identicons由 jdenticon 提供
反馈
请随时 分享 您的想法和错误报告!