How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
179 lines
10 KiB
179 lines
10 KiB
10 months ago
|
====== Yo! ======
|
||
|
|
||
|
Поисковая площадка для сети Yggdrasil с [[ https://github.com/YGGverse/Yo | открытым исходным кодом]] с минимальным заимствованием наработок архивного [[archive:yggdrasil:sites_and_services:search_services:yggo| YGGo ]]
|
||
|
|
||
|
Целью проекта является переход на более актуальные программные решения, желание сделать проект доступным для быстрой и удобной установки а также сокращение издержек на обслуживающие сервера.
|
||
|
|
||
|
<WRAP center round info 60%>
|
||
|
База данных импортирована с YGGo, но отсутствуют снимки в виду смены их архитектуры (доступен [[ https://github.com/YGGverse/YGGo#database-snaps | архив]] ~14 Гб).
|
||
|
</WRAP>
|
||
|
|
||
|
|
||
|
===== Технические отличия от YGGo =====
|
||
|
|
||
|
* в основе используется поисковый сервер [[ https://github.com/manticoresoftware | Manticore ]], которому делегированы все задачи хранения данных и операции с индексами
|
||
|
* отказ от перманентных хранилищ вроде MySQL, что упрощает установку и значительно снижает требования к серверу (удалось освободить порядка 1Гб ОЗУ и 4Гб дискового пространства при ~1М документов)
|
||
|
* индексы обновляются в режиме Real Time
|
||
|
* непосредственно кодовая база проекта реализована в нескольких файлах - для CLI и WebUI, остальные задачи делегированы [[ https://github.com/YGGverse/Yo/blob/main/composer.json | Composer ]], в частности - официальной библиотеке [[ https://github.com/manticoresoftware/manticoresearch-php | manticoresearch-php ]]
|
||
|
* в проекте сохранены все ключевые функции, в том числе снимки истории страниц (snap) которые в свою очередь оптимизированы для децентрализованного формата хранения данных вида /md5url/timestamp а также сжатием с помощью tar.gz
|
||
|
* основной из задач проекта является доработка поисковой выборки, так как в предыдущей реализации было трудно что либо найти и сейчас над этим ведется работа (просьба оставлять отзывы о результатах запросов)
|
||
|
|
||
|
===== Установка =====
|
||
|
|
||
|
Для установки достаточно выполнить несколько команд, описанных в разделе [[ https://github.com/YGGverse/Yo#install | README ]]
|
||
|
|
||
|
Приложение самостоятельно создаст индексы на основании единственного файла настроек.
|
||
|
|
||
|
===== Настройки =====
|
||
|
|
||
|
Все необходимые для работы настройки собраны в файл json ([[ https://github.com/YGGverse/Yo/blob/main/example/config.json | пример ]])
|
||
|
|
||
|
==== Yggdrasil ====
|
||
|
|
||
|
Платформа изначально создана для поиска контента в сети Yggdrasil но также может быть использована для организации локального или публичного поискового сервера для сети Интернет.
|
||
|
|
||
|
Чтобы осуществлять поиск в сети Yggdrasil, достаточно изменить правила сбора ссылок, например:
|
||
|
|
||
|
<code>
|
||
|
"a:not([rel=nofollow])":
|
||
|
{
|
||
|
"attribute":"href",
|
||
|
"external":true,
|
||
|
"regex":"/^http:\\/\\/\\[0{0,1}[2-3][a-f0-9]{0,2}:/"
|
||
|
},
|
||
|
"image":
|
||
|
{
|
||
|
"attribute":"src",
|
||
|
"external":true,
|
||
|
"regex":"/^http:\\/\\/\\[0{0,1}[2-3][a-f0-9]{0,2}:/"
|
||
|
},
|
||
|
...
|
||
|
</code>
|
||
|
|
||
|
По аналогии можно добавить поддержку доменов .ygg или сделать поиск только по указанной зоне:
|
||
|
|
||
|
<code>
|
||
|
"regex":"/^http:\\/\\/[A-z0-9\\.-]+\\.ygg/"
|
||
|
</code>
|
||
|
|
||
|
Если не планируется сбор / архивирование медиа контента, можно удалить соответствующие конструкции селекторов.
|
||
|
|
||
|
Не смотря на то, что с помощью регулярных выражений можно сделать то же самое, для удобства добавлены дополнительные фильтры подстроки:
|
||
|
|
||
|
<code>
|
||
|
"skip":
|
||
|
{
|
||
|
"stripos":
|
||
|
{
|
||
|
"url":
|
||
|
[
|
||
|
"#",
|
||
|
"javascript:",
|
||
|
"mailto:",
|
||
|
"magnet:",
|
||
|
"xmpp:"
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
</code>
|
||
|
|
||
|
==== Внешние ссылки ====
|
||
|
|
||
|
Очень просто можно перевести приложение в режим локального поиска по сайту, указав в настройках
|
||
|
|
||
|
<code>
|
||
|
"external":false
|
||
|
</code>
|
||
|
|
||
|
==== Клиентская индексация ====
|
||
|
|
||
|
Чтобы принимать запросы на индексацию через поисковое поле, нужно включить опцию
|
||
|
|
||
|
<code>
|
||
|
"webui":
|
||
|
{
|
||
|
"search":
|
||
|
{
|
||
|
"index":
|
||
|
{
|
||
|
"request":
|
||
|
{
|
||
|
"url":
|
||
|
{
|
||
|
"enabled":true,
|
||
|
</code>
|
||
|
|
||
|
также можно указать фильтры адресов с помощью регулярного выражения в поле "regex"
|
||
|
|
||
|
===== Резервные копии =====
|
||
|
|
||
|
Сервер Manticore предусматривает несколько базовых сценариев для выполнения бекапов:
|
||
|
|
||
|
==== Логический ====
|
||
|
|
||
|
Данный способ подойдет узлам, предоставляющих **публичный доступ** к собранным данным посредством текстового дампа в формате SQL.
|
||
|
|
||
|
При таком подходе, по расписанию выполняется команда mysqldump:
|
||
|
|
||
|
<code>
|
||
|
@monthly mysqldump -h0 -P9306 manticore > /var/www/html/index.sql 2>&1
|
||
|
</code>
|
||
|
|
||
|
Чтобы не останавливать сканер, можно указать флаг
|
||
|
|
||
|
<code>
|
||
|
--lock-tables=false
|
||
|
</code>
|
||
|
|
||
|
а также исключить дополнительные таблицы, если они не нужны
|
||
|
|
||
|
<code>
|
||
|
--ignore-table=manticore.yo_some_document
|
||
|
</code>
|
||
|
|
||
|
На основном сервере, дамп генерируется раз в месяц, а последняя его версия - всегда доступна по ссылке /index.sql в корне соответствующего сайта: [[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yo/index.sql | версия IPv6 ]], [[ http://yo.ygg/index.sql | yo.ygg ]] и т.д.
|
||
|
|
||
|
Владельцы могут ограничить канал для загрузки дампов посредством http:\\
|
||
|
|
||
|
<code>
|
||
|
location = /index.sql {
|
||
|
limit_rate 50k;
|
||
|
# ограничение будет срабатывать после 100 Мб
|
||
|
# limit_rate_after 100m;
|
||
|
}
|
||
|
</code>
|
||
|
|
||
|
История снимков на данный момент не опубликована в виду дисковых ограничений и вероятно, этот процесс будет автоматизирован последством создания периодических [[ yggdrasil:bittorrent:bittorrent | торрент ]] раздач.
|
||
|
|
||
|
Таким образом, можно выполнить слияние / быстро развернуть приватный или общий поисковый сервер с нуля, без лишнего обращения к сайтам и затрат времени на сканирование.
|
||
|
|
||
|
[[ https://manual.manticoresearch.com/Securing_and_compacting_a_table/Backup_and_restore#Backup-and-restore-with-mysqldump | Подробнее о логических бекапах ]]
|
||
|
|
||
|
==== Физический ====
|
||
|
|
||
|
Данный способ подразумевает резервное копирование мета информации сервера, включая бинарные данные.
|
||
|
|
||
|
Подход менее требовательный к ресурсам сервера, может выполнятся чаще для административных нужд.
|
||
|
|
||
|
[[ https://manual.manticoresearch.com/Securing_and_compacting_a_table/Backup_and_restore#Using-manticore-backup-command-line-tool | Подробнее о физических бекапах ]]
|
||
|
|
||
|
===== Инстанции =====
|
||
|
|
||
|
==== Yggdrasil ====
|
||
|
* [[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yo/ ]] - только адреса IPv6 0200::/7 ([[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yo/index.sql | индекс ]])
|
||
|
|
||
|
==== Alfis ====
|
||
|
* [[ http://yo.ygg ]] - поиск по доменной зоне .ygg ([[ http://yo.ygg/index.sql | индекс ]])
|
||
|
* [[ http://ygg.yo.index ]] - алиас yo.ygg ([[ http://ygg.yo.index/index.sql | индекс ]])
|
||
|
|
||
|
//* зона *.yo.index зарезервирована для домен-ориентированных узлов Yo! например, `.btn`, `.conf`, `.mirror` - операторы независимых узлов могут отправить запрос на присвоение адреса бесплатно.//
|
||
|
|
||
|
===== Ссылки =====
|
||
|
|
||
|
Проект на GitHub: https://github.com/YGGverse/Yo ([[ http://[316:c51a:62a3:8b9::4]/YGGverse/Yo | зеркало ]])\\
|
||
|
Официальный сайт Manticore: https://manticoresearch.com\\
|
||
|
Новости: https://mastodon.social/@YGGverse\\
|
||
|
Канал KevaChat: [[ http://[201:23b4:991a:634d:8359:4521:5576:15b7]/kevachat/room/NRzhB7LF4Fv5RQUtfhRtnUpTWzArSQ55R2#latest | 0200::/7 ]], [[ http://kevachat.ygg/room/NRzhB7LF4Fv5RQUtfhRtnUpTWzArSQ55R2#latest | алиас ]]
|
||
|
|
||
|
~~DISCUSSION~~
|