dolboed: (0kozel_animated)
[personal profile] dolboed
Группа товарищей, предводительствуемая [livejournal.com profile] kukutz, вчера запустила полнотекстовый поиск по русскоязычным архивам ЖЖ с 2000 по 2015 год. Исходным массивом для этого поиска послужила база объёмом в 1,4ТБ текста, накопленная Яндексом для его сервиса «Поиск по блогам», но с 2015 года в этом сервисе не используемая. Большое спасибо неленивым товарищам за этот полезный и удобный инструмент. Подробности о проекте — в его FAQ.

В ограничении поиска октябрём 2015 года нет никаких религиозных соображений. Одни практические. Прикрутить поиск по существующей базе записей — задача посильная, и команда добровольцев с нею успешно справилась. Замутить с нуля поискового робота, который индексировал бы все новые аккаунты, записи и комментарии, ежесекундно добавляемые в ЖЖ — ощутимая трата сил и денег, несоразмерная с ресурсами и возможностями текущей команды добровольцев (кстати, поддержать проект рублём можно здесь).

Другое дело, что любой запрос, полученный поисковой системой LJSear.ch, можно было бы превратить в гиперссылку для передачи сторонним поисковикам. Так с прошлого тысячелетия поступает Яндекс, который в конце каждой страницы своей выдачи предлагает пользователю «поискать то же самое» в Bing, Google и Mail.Ru. Но Яндекс, повинуясь звериным законам капитализьма, эту полезную фичу с каждым годом всё сильнее придушает, и применительно к блогам она сегодня у него не работает вообще, из-за несовместимости синтаксиса запросов у разных поисковиков. А ЛЖепоиск, будучи проектом некоммерческим, вполне мог бы взять на себя элементарное упражнение по динамическому переводу между языками Яндекса и Гугла. Благо все аргументы поиска, которые используются для уточения запросов к ЖЖ, известны и неизменны. То, что на языке Яндекса звучит как author:dolboeb, в Гугле обозначается как site:dolboeb.livejournal.com (без деления на персональные блоги и сообщества). Начало временного интервала, которое у Яндекса from_date_full, у Гугла — cd_min. Окончание — to_date_full и cd_max соответственно. Так что запрос вида
https://ljsear.ch/search?q=apple&author=dolboeb&dateFrom=946760400&dateTo=1443646800
будет выглядеть в Яндексе как
https://yandex.ru/search/?text=apple%20author%3Adolboeb&from_date_full=01.01.2000&to_date_full=01.10.2015
а в Гугле та же строка кодируется так:
https://www.google.ru/search?cd_min=01.01.2000&cd_max=01.10.2015&q=apple+site:dolboeb.livejournal.com
Скрипт, который на лету превращал бы любой запрос к ЛЖепоиску в гиперссылки на выдачу Гугла и Яндекса по тем же самым словам, авторам и временным промежуткам, не должен занимать больше двух строк на любом языке программирования. Одна строка для Яндекса, другая — для Гугла. И проблема поиска по датам поздней 31 октября 2015 года решится раз и навсегда, легко и непринужденно.

Date: 2016-06-15 07:12 am (UTC)
From: [identity profile] d0cta-gonz0.livejournal.com
Спасибо!

Date: 2016-06-15 07:14 am (UTC)
From: [identity profile] kukutz.livejournal.com
Да, разумно, поставим такие ссылки в футер выдачи.

Спасибо.

Date: 2016-06-16 08:22 am (UTC)
From: [identity profile] dolboeb.livejournal.com
Тебе спасибо.

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

Это реально проблема, когда не понимаешь, что можно поискать.
Любого сервиса касается.

Date: 2016-06-19 08:58 am (UTC)
From: [identity profile] velder.livejournal.com
небольшая проблема с отображением на IE11 и маленьким (по нынешним временам) вертикальным разрешением

Image

Date: 2016-06-15 07:43 am (UTC)
From: [identity profile] qulac73.livejournal.com
Я могу правильный поисковик написать, дайте кто ни будь денег!

Date: 2016-06-15 10:15 am (UTC)
20_00: (Default)
From: [personal profile] 20_00
Дело хорошее. Денег не дам.

Date: 2016-06-15 12:47 pm (UTC)
From: [identity profile] mephistus.livejournal.com
Они, там, похоже, даже простенький PageRank не осилили — тупо слова считают. Странно, ведь есть готовые поисковые библиотеки, вроде.

Date: 2016-06-15 08:16 pm (UTC)
From: [identity profile] kukutz.livejournal.com
Если вы готовы вложить своё время как волонтёра, я, конечно, буду рад.

Но хотел бы заметить, что по блогам не ищут с сортировкой по ссылочному ранжированию, по блогам ищут с сортировкой по дате.

Ну, то есть, в мои времена искали!

(кряхтит, потрясает клюкой)

Date: 2016-06-16 07:10 am (UTC)
From: [identity profile] mephistus.livejournal.com
Так там же есть сортировка по датам, и по релевантности, релевантность нужно через PageRank делать, или типа того.

Я как-то лет 8 назад выпросил у жежешечки неограниченный rate на вызовы API (я их еще через HTTP pipelining херачил), и реализовал PageRank на ранг пользователя, считая френдов за ссылки как-бы.

Щас нашел проект, вот топ-15, аффтар на почетном последнем месте, лол:
potterpuffs
quizgalaxy
iharthdarth
quizuniverse
e_grishkovets
toster
chich8
drugoi
elysesewell
doctor_livsy
tema
moocards
status
qcjeph
dolboeb


Но нужно понимать, что это чисто по френдам ранжировка, без учета постов, каментов, и т.д.

Короче, ни на какое волонтёрство у меня нет времени, но PageRank это просто, как две копейки, матрица ссылок умножается на себя до сходимости, по сути.

Date: 2016-06-16 08:18 am (UTC)
From: [identity profile] dolboeb.livejournal.com
PageRank — с очень прикладной целью выдуманный критерий.
Как любой инструмент, он имеет пределы своей полезности и применимости.

Если Вы — специалист по Веневитинову, и изучаете стихи этого поэта, Вам не нужно, чтобы PageRank при любом запросе к базе Вам напоминал, что Пушкин вообще-то круче.

Поскольку ЖЖ — СМИ авторское и периодическое, то критерии "кто написал" и "когда написано" тут более релевантны, чем абстрактный ссылочный вес отдельного автора. Если мне интересно прочитать посты людей, в реальном времени освещавших Норд-Ост, то мне совершенно не надо, чтобы мне вместо них пихали Варламова и Долю, у которых в 2002 году не было никакого ЖЖ, зато у них сегодня высокий PageRank.

Date: 2016-06-16 09:30 am (UTC)
From: [identity profile] mephistus.livejournal.com
PageRank это весьма универсальный инструмент, потому что он является симуляцией хомячков. Хомячки бродят по интернетам, кликают ссылки по каким-либо критериям, и хавают страницы. Где больше хомячков, там вкуснее нямка.

С критериями можно играться, так что если вам интереснее мнения гуманитариев о Веневитинове (погуглил — какие-то нечитаемые у него вирши, но сейчас не об этом) в последние 10 лет, то и критерии вероятности перехода по ссылкам нужно настраивать соответствующим способом.

Подробности в книжке Ульмана, секшен 5.3, такие дела. В принципе, в нишевом поисковике можно под каждого пользователя запускать свой PageRank, вай нот, собсна.

Date: 2016-06-15 08:13 am (UTC)
From: [identity profile] microgenius.livejournal.com
А зачем этот стендалон-поисковик нужен, если в гугле все итак ищется?

Date: 2016-06-15 09:21 am (UTC)
From: [identity profile] henic.livejournal.com
Гугл паршиво ищет.
Настолько, что для израильских сообществ был написан свой поисковик.

Date: 2016-06-15 09:53 am (UTC)
From: [identity profile] microgenius.livejournal.com
Возможно. Но по-русски отлично справляется, а поиск выше вроде как для русскоязычного сегмента ЖЖ сделали.

Date: 2016-06-15 10:12 am (UTC)
From: [identity profile] henic.livejournal.com
Речь о русскоязычных сообществах.
Плохо ищет.

Date: 2016-06-16 04:58 pm (UTC)
From: [identity profile] dolboeb.livejournal.com
В Гугле очень странная нерасчленёнка выдачи.
Невозможно, например, отделить написанное в посте и в комментариях, потому что они вместе индексируются.
При этом гиперссылка Гугла на страницу с комментариями — динамическая, типа &page=2, а такие адреса и естественным порядком устаревают, и искусственно тасуются при перевёрстке дерева на стороне сервера.

Date: 2016-06-15 10:12 am (UTC)
20_00: (Default)
From: [personal profile] 20_00
Пока не очень успешно справилась, нет ряда проиндексированных журналов, которые имелись в яндексе и до сих пор доступны по прямым ссылкам на кэш, но надеюсь допилят.
А так - молодцы!

Date: 2016-06-15 08:18 pm (UTC)
From: [identity profile] kukutz.livejournal.com
А я уже вас спрашивал ссылки на такие примеры? Я их пока собираю, на следующей неделе буду разбираться и анализировать причины. Мне тоже очень не нравится неполнота (когда она не из-за требования автора).

Date: 2016-06-15 08:23 pm (UTC)
20_00: (Default)
From: [personal profile] 20_00
Пришлю отчет через форму обратной связи на днях.
Спасибо.

Date: 2016-06-15 10:33 pm (UTC)
From: [identity profile] kukutz.livejournal.com
Вам спасибо!

Date: 2016-06-18 06:43 am (UTC)
20_00: (Default)
From: [personal profile] 20_00
Здравствуйте еще раз! Прошу извинить, не смог воспользоваться формой обратной связи, что-то у меня в браузере не работает.

Прежде всего, разрешите попросить расписать подробнее раздел FAQ по адресу: https://ljsear.ch/faq#query-lang.
В частности непонятно, какие еще поля записи можно задать в запросе, кроме заголовка и тела (tags? Event? Current Mood & Music?).
Непонятно, как задать временной диапазон, хотя у Антона в посте есть пример. Не очень понятно, как задать область поиска: комменты юзера внутри журнала/сообщества, или все комменты к определенной записи. В возможностях это указано.

И вопрос. Правильно ли я понимаю, что несмотря на то, что максимальная выдача не превышает 1000 штук, с помощью ограничения даты можно получить остальные части полной выдачи?

Теперь примеры поисковых запросов, которые возвращают нулевой результат для индексированных блогов/сообществ из числа моих френдов:
https://ljsear.ch/search?q=author:andreios-ab.
https://ljsear.ch/search?q=community:ru-antireligion.
https://ljsear.ch/search?q=community:doktor-killer.
***
Cлучай с переименованием.
https://ljsear.ch/search?q=author%3Adotroga&in_comments=0&offset=0
https://ljsear.ch/search?q=author%3Amolodozhon&in_comments=0&offset=0
Юзер переименовал журнал с перенаправлением. Если не ошибаюсь, яндекс перенаправление учитывал и выдачи совпадали. Здесь они разделены, мы имеем записи по новому имени с момента переименования и отдельную выдачу по старому имени. Но тут могу спутать, может так и должно быть.

Пока всё, еще что замечу, сообщу.
Спасибо, хороших выходных :)

Date: 2016-06-18 11:39 am (UTC)
From: [identity profile] kukutz.livejournal.com
> какие еще поля записи можно задать в запросе, кроме заголовка и тела

Никакие.

> Непонятно, как задать временной диапазон, хотя у Антона в посте есть пример

В расширенном поиске (иконка с ползунками справа в поле поиска).

> Не очень понятно, как задать область поиска: комменты юзера внутри журнала/сообщества

В расширенном поиске

> или все комменты к определенной записи.

Этой возможности пока нет.

> Правильно ли я понимаю, что несмотря на то, что максимальная выдача не превышает 1000 штук, с помощью ограничения даты можно получить остальные части полной выдачи?

Абсолютно верно.

Date: 2016-06-18 11:41 am (UTC)
From: [identity profile] kukutz.livejournal.com
Что касается примеров, то нужно использовать подчерк, а не минус.

Я запишу себе в todo заменять в author и community минус на подчерк автоматически.

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

Date: 2016-06-18 03:00 pm (UTC)
20_00: (Default)
From: [personal profile] 20_00
Спасибо большое! Ларчик просто открывался. Будете с меня смеяться, но иконку с ползунками я можно сказать не видел, потому что в браузере было отключено собственное цветовое оформление сайтов.

Лады, теперь все просто идеально работает. Кроме региональной заглушки, но это мелочи :)

Profile

dolboed: (Default)
Anton Nossik

April 2017

S M T W T F S
       1
23 45678
9 10 11 12 13 14 15
16 17 18 19 202122
23 24 25 26 27 2829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 16th, 2026 06:29 pm
Powered by Dreamwidth Studios