LINUX.ORG.RU

Состоялся релиз распределённой системы поиска YaCy 1.90

 ,


2

3

Спустя более года разработки состоялся релиз YaCy 1.90.

YaCy — децентрализованный сервис, в настоящее время работают 600 пиров. Архитектура YaCy не позволяет какой-либо одной организации решать, какие страницы индексировать и в каком порядке располагать их в выдаче. Сервера YaCy работают на компьютерах пользователей, поисковые запросы перед отправкой шифруются. В отличие от привычных нам поисковых систем, при разработке YaCy большое внимание уделялось защите персональной информации пользователя. На компьютере пользователя сохраняются персональные индексы и рейтинги страниц, позволяющие со временем улучшать качество поиска. Также YaCy можно использовать для поиска на определённом сайте или в пределах локальной сети.

Среди множества изменений и исправлений ошибок в этом релизе наиболее значимые изменения:

  • Добавлена возможность перевода текста и сохранения локальной переведенной копии.
  • Добавлена поддержка сжатых SWF-файлов.
  • Улучшена поддержка BMP, ICO и PNG.
  • Добавлена поддержка индексирования AJAX-сайтов.
  • Произведена миграция на Solr 5.2, который работает намного быстрее, чем Solr 4.x. Разработчики рекомендуют после обновления переиндексировать все локальные данные YaCy.
  • Улучшена поддержка часовых поясов для индексированных данных.
  • Добавлено отображение даты в списке результатов поиска.
  • Добавлен новый способ навигации среди результатов поиска — по дате. Также теперь можно фильтровать данные по дате, указывая диапазон.
  • По умолчанию теперь данные количества индексированных документов за конкретные даты визуализируются в виде гистограммы.

Каждый может начать пользоваться YaCy прямо сейчас, произведя простую установку ноды или используя любую чужую ноду.

>>> Подробности

★★

Проверено: Shaman007 ()
Последнее исправление: DeadEye (всего исправлений: 2)

Ответ на: комментарий от kto_tama

тяжеловатая схема для хранения индекса

Подтверждаю.

Я поставил это чудо на попробовать. Запустил индексацию интересных мне сайтов. После 7К документов он выжрал все ресурсы, которые я выделил ему через cgroups (2.5Гб оперативной памяти и одно x86 ядро @1Ghz), остановил индексацию и DHT (сказав, что не хватает памяти) и стал жутко тормозить (отклик - несколько минут, для сравнения у гугла - 100 ms). Не понятно, что он там делает, если остановил индексацию и DHT.

То есть, если что-то проиндексировать, то пользоваться нельзя. Вообще. Если не индексировать - тоже нельзя.

Вывод - не готово.

P.S. Может я что-то не так делаю? Кто все эти 400 человек, которые держат свои ноды этого поделия?

Pythagoras ★★
()
Ответ на: комментарий от kto_tama

Сам я такое не напишу, => пользуюсь тем, что дают.

Stage1 ★★
()
Ответ на: комментарий от Pythagoras

Возможно, что эти 400 человек не пытаются проиндексировать весь интернет, а наполняют индекс тем, что открывают сами. Подход я описывал.
Да, тормозит и на индексе гигов в 40 начинает кончаться - не спорю. Однако, если не пользоваться, то проект загнётся, а мне он нужен. Как-то так.

Stage1 ★★
()
Ответ на: комментарий от Stage1

40Гб? Мой едва перевалил за 1Гб!

Экспериментально обнаружил, что тормоза и OOM эксепшены сильно коррелируют с размером очереди локального Crawler'а. Но как запустить Crawler и при этом не забивать очередь - не понятно.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

С чистой установкой на 100мбит канале краулит 3 сайта одновременно, пока объём не достигнет указанных чисел. Правда, я отвожу ему 6 гигов памяти, это же java - понимать надо.

Stage1 ★★
()
Ответ на: комментарий от Stage1

Зачем тогда вообще было писать на java, а если уж написали - обещать, что 256Mb хватит? Попробую потестировать на другой машине с 16Gb памяти.

А как заставить её работать только по https? Я поднял прокси на nginx, теперь я могу подключаться по https, но она всё равно анонсирует для других пиров только http.

P. S. http://search.yacy.de/ совсем упал.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Писать они могут что угодно, но я, когда вижу java-прогу, сразу рассчитываю на один гиг для посмотреть и больше, если будет надо.
По поводу https в подобных вещах я не парюсь, так что не знаю. ИМХО если правда нужна приватность, то надо идти в i2p. Кстати проиндексировать i2p-сеть и организовать внутренний поисковик - задача для настоящего героя нашего времени.
Зачем нужен их интерфейс, когда с любой ноды доступна вся база, мне не ясно.

Stage1 ★★
()
Ответ на: комментарий от Stage1

ИМХО если правда нужна приватность, то надо идти в i2p.

Приватность - вроде как один из рекламируемых свойств yacy. А i2p - это немного о другом.

Кстати проиндексировать i2p-сеть и организовать внутренний поисковик - задача для настоящего героя нашего времени.

Так уже давно это сделали.

Pythagoras ★★
()
Ответ на: комментарий от ugoday

с этого места по-подробнее, пожалуйста.

search.rus.i2p, eye.i2p, yacysearch.i2p

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Действительно, однако:

very good idea to use SSL to add slightly more security

slightly more
У меня уже год ssl не ассоциируется с безопасностью). Все подобные вещи предпочитаю пробрасывать через ssh себе на машину. Эффективно и безопасно.

Stage1 ★★
()

а пауками кто выступает? тоже компы пользователей? и как распределена информация? локальную копию гугла иметь на компе заманчиво, но нереально.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Stage1

если бы там не было жабы, возможно, во мне было бы куда больше геройства. а так это бесполезная трата времени. жаба в сетевой архитектуре - это изначально неверно выбранная стратегия.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Владелец узла может инициировать индексацию сайта, часть работы может быть передана другим узлам, при условии, что они согласились принимать удалённые запросы на индексацию. Квоты имеются, естественно. Плюс индексация прозрачным прокси посещаемых пользователем страниц. Вполне распределённо, ИМХО.
Персонализированную частичку гугла вполне можно заиметь локально. Объединение нескольких сотен персоналий покрывает 99% ширпотреба и даёт изюминки в виде узлов людей, прицельно индексирующих определённые узкие области науки - свои профессиональные интересы или хобби.
Получается вполне хорошая поисковая сеть, но, как я наблюдаю, создавать поисковые запросы надо иначе, чем гуглу. Гугл - он как человек скорее воспринимает, а YaCy - как машина попроще. Сложно объяснить. Но если это учитывать, то ищет отлично.

Stage1 ★★
()
Ответ на: комментарий от Iron_Bug

Знаете, даже не думаю возражать. Java - это кошмар с точки зрения админа по многим аспектам. Но!
На таком «Intel(R) Celeron(R) CPU 1037U @ 1.80GHz» «компьютере» YaCy летит и не жужжит. И главный аргумент - ничего лучше, чем YaCy на java сейчас нет, а я нуждаюсь в таком инструменте, и при этом не программист. Как только появится что-то лучшее - перейду мгновенно.

Stage1 ★★
()
Ответ на: комментарий от Stage1

да, но понятие «ширпотреба» в сети очень сомнительное. у каждого свои тараканы и поисковые запросы. а изюм в куче непонятно чего вылавливать довольно сложно.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Stage1

ну, тут, наверное, не в проце дело. а в том, сколько жаба памяти сожрёт. жаба проц-то как раз неэффективно юзает. зато память жрёт только в путь.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Тараканы - это и есть проф.интересы. Если они уникальны, стоит их проиндексировать лично и помочь сети. Я вот держу ноду с биологией и unix-ресурсами, сейчас индексирую сайты по ракетной технике. И большую часть моих запросов нода покрывает. Остальное - бытовой шлак лезет сам, что-то редкое гуглю - и оно тоже индексируется. Такие системы требуют работать на них, чтобы получить результат - это закономерно.
Памяти 8 гигов стоит, сейчас занято 3,3 гига на 25 гигов индека. Хотелось бы лучше, но что есть.

Stage1 ★★
()
Ответ на: комментарий от Stage1

большие расходы оперативы и постоянное дёрганье винта. а какие плюсы-то, в итоге? чем оно лучше гугла? гугл мои интересы отслеживает и предлагает мне контекстный поиск. то есть, если я ищу какое-то абстрактное нечто, то он мне первым делом выдаёт связанные с программированием запросы, потому что чаще всего мои запросы связаны именно с ним. а потом уже всё прочее. это как раз и есть индексация по интересам юзера. сейчас таргетированные запросы есть практически у любых поисковиков.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

ну, тут, наверное, не в проце дело. а в том, сколько жаба памяти сожрёт. жаба проц-то как раз неэффективно юзает. зато память жрёт только в путь.

Попробуйте использовать пул объектов и ограничить сверху опцией Xmx - должно помочь с «зато память жрёт только в путь».

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)

Годная идея у самого в TODO что-то подобное записано ) Вот только не ожидал, что это еще в 2005 запили, я наверное тогда только из универа вылез и разбирался, что такое паттерны программирования параллельно читая совершенный код макконнелла )

foror ★★★★★
()
Ответ на: комментарий от Pythagoras

Поставил три сайта на идексацию в районе 7000 документов расход по памяти не больше 1 гига без всяких утечек. Но есть проблема, если добавлять больше сайтов на сканирование, то для каждого краулера выделяется память отдельно. Очевидно с таким подходом десяток сайтов не посканируешь, так что у них серьезная проблема в архитектуре.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)

Пользовался «давно», но вряд ли многое изменилось.

Вы вот краулите, краулите, а с других узлов это станет видно только когда постепенно будет отправлено на соответствующие узлы (раньше, вроде, было по 3 узла на слово и на URL [для избыточности]). Если много ненужного накраулить, оно никогда всё не разойдётся.

AVRS ★★
()
Последнее исправление: AVRS (всего исправлений: 1)
Ответ на: комментарий от AVRS

А держать свой индекс у себя можно было только отказавшись от рассылки другим (и использования чужих индексов?).

Открытая для вступления сеть (как freeworld), по-моему, направленной на неё цензуре не сможет противостоять (см. https://ru.wikipedia.org/wiki/YaCy#.D0.9D.D0.B5.D0.B4.D0.BE.D1.81.D1.82.D0.B0... ).

AVRS ★★
()
Последнее исправление: AVRS (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Несомненно, YaCy по всем статьям хуже больших поисковиков. Тут мы входим в зону, где важным становится, не знаю, личные вкусы, воззрение, «религиозность», если хотите. Просто определённый круг людей хочет пользоваться независимым инструментом, полагая, что в определённый момент поисковики перестанут работать честно и скроют что-то важное. И готовы ради готовности к этой ситуации тратить электричество, оперативку, своё время, получать худшие результаты, развивая проект. Это похоже на ножение наколенников или ремнём бесопасности в автомобиле. Борьба с вероятностным событием. Оно ведь может и не произойти с вами, верно? Просто у каждого свой триггер, после которого вероятность становится важной.
Если исключить такой подход, то человек почти ничего не будет делать (и уметь) сам, отдавая задачи на откуп специалистам. Что останется от (для) человека - вопрос философский, но счастлив он вряд-ли будет.

Stage1 ★★
()
Ответ на: комментарий от foror

Поставил три сайта на идексацию в районе 7000 документов расход по памяти не больше 1 гига без всяких утечек.

Как измеряешь? То, что yacy сама меряет расходится с реальностью больше, чем в 2 раза.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Я не понимаю вот чего: в оксфордском словаре 600 000 слов. У меня она за несколько дней откуда-то насобирала 2 000 000 слов в RWI. Откуда? Я явно мало чего индексировал. Во всей сети слов аж 200 000 000. Здесь какой-то подвох!

Пользуясь случаем, хочу спросить, чем отличается peer от node peer.

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Открыл в убунте system monitor и отфильтровал по java и смотрю в поле Memory.

foror ★★★★★
()
Ответ на: комментарий от foror

А у тебя что выдает в консоле по команде java -version?

[yacy@localhost ~]$ java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
[yacy@localhost ~]$ systemctl status yacy
● yacy.service - YaCy search server
   Loaded: loaded (/usr/lib/systemd/system/yacy.service; enabled; vendor preset: disabled)
   Active: active (running) since Пн 2016-09-19 23:28:21 MSK; 23h ago
 Main PID: 2628 (java)
    Tasks: 321 (limit: 512)
   Memory: 2.4G (limit: 2.5G)
      CPU: 22h 22min 19.288s
   CGroup: /system.slice/yacy.service
           └─2628 /usr/bin/java -Xms3072m -Xmx3072m -server -Djava.awt.headless==true -Dfi...

сен 19 23:28:21 localhost systemd[1]: Starting YaCy search server...
сен 19 23:28:21 localhost systemd[1]: Started YaCy search server.

Обрати внимание на CPU! Он жрёт 100% CPU уже сутки! При этом совсем неприлично тормозит.

И ещё он нагло врёт на статусной странице:

System
    YaCy version: 1.91/9180
    Uptime: 0 days 23:36
    Java version: 1.8.0_102
    Processors: 2
    Load: 4.43
    Threads: 217/152, peak:240, total:923

Memory Usage
    RAM used:	1.65 GB
    RAM max:	1.93 GB
    DISK used:	(approx.) 13.43 GB
    DISK free:	50.76 GB
Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Память он кушает из-за этого "-Xms3072m -Xmx3072m", т.е. ему разрешено откушать до 3 гиг памяти, а джава в этом случае забьет на запуски GC и откушает всё что есть. Я запускал через startYACY.sh, где "-Xmx600m -Xms180m".

А почему цпу кашает я хз, может из-за этого «Tasks: 321 (limit: 512)»?

foror ★★★★★
()
Ответ на: комментарий от Pythagoras

Я не понимаю вот чего: в оксфордском словаре 600 000 слов.

А словоформы, разные языки, бренды, опечатки, мусор, кусочки URL?

AVRS ★★
()
Последнее исправление: AVRS (всего исправлений: 2)
Ответ на: комментарий от foror

Я пробовал давать ему меньше памяти, но тогда он вместо поиска выдаёт HTTP 500 Server Error с каким-то эксепшеном. А количество нитей не объясняет, зачем ему всё доступное CPU. Я, конечно, понимаю, что java, но не до такой же степени!

Pythagoras ★★
()
Ответ на: комментарий от Pythagoras

Я уже не помню, что такое «RWI». Может, каждая пара «слово — URL»?

AVRS ★★
()
Ответ на: комментарий от Pythagoras

Потому что в поиске можно задать домен или часть ссылки, или «мусор». Откуда система знает, что ты не захочешь искать какой-то идентификатор, например «wd05x10010»? А ведь это конкретное название продукта.

В интернете нет понятия «мусор». Всё является информацией. Даже хэш может понадобиться для поиска.

anonymous00 ★★
() автор топика
24 октября 2016 г.
Ответ на: комментарий от torvn77

Он умеет индексировать всё, на что его натравишь, в том числе интрасети. В документации всё описано.

anonymous00 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.