yggverse/yggo

此包已被弃用且不再维护。没有建议的替代包。

YGGo! 分布式网络搜索引擎

安装: 0

依赖: 0

建议者: 0

安全: 0

星标: 14

关注者: 3

分叉: 3

开放问题: 4

类型:项目

dev-main 2023-11-25 17:37 UTC

This package is auto-updated.

Last update: 2023-12-25 17:48:51 UTC


README

项目已存档。请访问 Yo! - 基于 Manticore 搜索的 YGGo 项目的下一代。

YGGo! - 分布式网络搜索引擎

StandWithUkraine

受 Yggdrasil 生态系统启发而编写。该引擎可以用于抓取常规网站、小型商业资源、本地网络。

项目目标 - 简单的界面、清晰的架构和轻量级服务器需求。

概述

Home page

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_VERSIONDEFAULT_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树

捐赠给贡献者

许可证

反馈

请随时 分享 您的想法和错误报告!

社区

另请参阅