Регистрация

В поисках Sphinx

15
0
1 052 0
Аудио Текст
6 июня 2014

Где искать альтернативу поисковой системе для своего информационного ресурса или интернет-магазина? Об этом SeoPult.TV расспросил создателя системы полнотекстового поиска Sphinx Андрея Аксенова.

Из передачи вы узнаете:
— почему система Sphinx позиционируется как «открытая»;
— чем Sphinx отличается от решений Google, «Яндекса», Bing, с одной стороны, и Lucene/Solr, Elastic, Fast, Verity, Autonomy, Yserver — с другой;
— как технология Sphinx позволяет разработчикам создавать кастомизированные приложения на его основе;
— в каких сегментах наиболее востребован Sphinx;
— почему Sphinx уделяет особое внимание индексации баз интернет-магазинов;
— и многое другое.

Сергей Иванов: Здравствуйте, уважаемые телезрители! В эфире программа «Бизнес online», с вами я, Сергей Иванов. Когда размер базы данных достигает десятков тысяч, а иногда даже миллионов строк, о скоростном поиске стандартными средствами можно просто забыть. Где же искать альтернативы для своего сайта, например интернет-магазина? Об этом мы сегодня поговорим с создателем системы полнотекстового поиска Sphinx Андрея Аксенова. Андрей, привет!
Андрей Аксенов: Категорически!?

Андрей Аксенов, автор системы полнотекстового поиска Sphinx.
В прошлых профессиональных жизнях вдобавок к этому веб-разработчик, технический директор в уклоном в 3D-графику, системный программист.
Писал много кода, делал много презентаций, управлял командами разработчиков, чем и продолжает с переменным успехом заниматься.?


С. И.: Я начну с того, кто ты есть и чем занимаешься. На ресурсе ProfyClub тебя характеризуют как автора открытого полнотекстового поисковика Sphinx. Правильно я говорю?
А. А.: В принципе, да. У меня есть коротенький панчлайн, звучит так: «Воронежское быдло, интересуюсь поиском!»
С. И.: Ну, замечательно. В принципе, о тебе мы еще поговорим, потому что ты тоже такой загадочный сфинкс и не очень много о тебе можно узнать. Мне понравилось определение «открытый поисковик». Расскажи, пожалуйста, что такое «открытый» в данном случае и что в него добавляют. Ну, я думаю, ты заодно сразу охватишь большую систему, расскажешь нам о GNU GPL, о «копилефте» Ричарда Столлмана, а может быть, не расскажешь.
А. А.: Это пласт слишком большой, конечно. Можно рассказывать вечно, поэтому будем рассказывать коротко. «Открытый» — это такое интересное слово, которое делает хорошо пользователю и, соответственно, делает плохо поставщикам. Понятное дело, что есть два варианта делать софт, точнее, два варианта лицензировать софт. Вариант №1: ты идешь по стандартной дороге, делаешь коммерческий софт, его за денежки продаешь, и не важно, по какой схеме лицензирование.
С. И.: Проприетарный такой, да?
А. А.: Ну да, проприетарный — есть такое матерое «русское» слово.
С. И.: Да.
А. А.: Второй вариант: ты его делаешь, цинично раздаешь бесплатно и пытаешься с этим жить. Пытаешься жить с дополнительных сервисов и прочих доработок. Понятное дело, когда пользователю ничего не надо платить за софт, это для пользователя решительно хорошо, но для поставщика, соответственно, плохо. Потому что так ты «рубишь» с каждой копии, а иначе приходится непонятным образом заманивать пользователей становиться клиентами. Второе значительно сложнее, чем просто продавать софт, но, с другой стороны, за счет открытости у тебя та самая база пользователей теоретически, если все хорошо сложится, может вырасти серьезно. Такой вот плохой сложный баланс.
С. И.: Отлично! О том, как зарабатывать на том, что раздаешь бесплатно, поговорим чуть позже. А давай сначала расскажем нашим зрителям о том, что собой представляет технология Sphinx.
А. А.: Хороший вопрос.
С. И.: Да, короткий, подразумевающий длинный ответ.
А. А.: Да, ну, совершенно понятно, что на самом деле Sphinx — это всего-навсего очередной классически инвертированный индекс, поисковичок. На основе этого инвертированного индекса — понятное дело, с какими-то своими конкретными осложнениями. Их можно придумывать много разных. К несчастью, наука про информационный поиск здоровенная — масса томов, можно массу полок ей заставить. Какие хорошие отличительные черты у Sphinx сегодня? Ну, навскидку давайте так, наверное. Мы достаточно все еще быстренькие, то есть высокая скорость индексации, высокая скорость поиска. Известно, что масштабируемся довольно неплохо. В бою, скажем так, доказали это всем и себе в первую очередь. Встроенная поддержка морфологии разных языков недавно наконец завелась где-то в последнюю пару лет. Если совсем точно, для трех языков: русского, английского и немецкого. Теоретически когда-нибудь добавим еще. SQL-интерфейс, что иногда плюс, иногда минус. Ну и, наверное, все.
С. И.: Андрей, а чем Sphinx отличается от решений Google, «Яндекса», Bing, с одной стороны, и от Lucene/Solr, Elastic, Fast, Verity, Autonomy, Yserver — с другой?
А. А.: Это на самом деле не две разные стороны, а три разные стороны. Сторона №1 — это публично доступные сервисы типа Google, «Яндекса», Bing как раз и т. д. Отличительные черты: доступа к этим сервисам у тебя нет и, скорее всего, никогда не будет. Это где-то крутящийся сервис, на который ты как пользователь приходишь и ищешь, грубо говоря, ровно по одной коллекции — по интернету. Соответственно, никакого контроля над этим сервисом, никакого доступа к нему у тебя нет. Это натуральный сервис, который оперируется кем-то, компанией, которая, как известно, наверное, самый матерый «продажник» рекламы на любом рынке. Это Google, «Яндекс» и т. д. И все. В привычном понимании слова это вообще не ПО, которое дадено тебе как пользователю в ощущение. Соответственно, две другие стороны, два других эшелона — это два разных вида софта. Как раз коммерческие поисковики, они же проприетарные… Красивое «русское» слово. Это Fast в девичестве, — теперь он, по-моему, то ли уже насмерть заинтегрирован в Microsoft SharePoint, то ли еще не насмерть, но, в общем, они слились в экстазе в итоге, — Verity, Autonomy и т. д. Вот отдельная большая ниша коммерческих поисковиков, про которую я мало что знаю. Ну, пару-тройку общих фактов, не более того. И отдельная ниша под названием «отдельные поисковики», OpenSource, с открытыми исходниками. Это как раз Lucene и его, как я его ласково называю, отродье в лице Solr и Elastic, с одной стороны, Sphinx — с другой стороны. И еще несколько проектов поменьше в смысле популярности, то есть совсем маленькие.
С. И.: А с точки зрения самого пользователя, по применению к его конкретным задачам, как он может ощутить различия? Кроме того, что за коммерческие он платит деньги. Но по скорости решения каких-то задач, интеграции морфологии различных языков?
А. А.: Я думаю, здесь два основных дифференциатора помимо денег. Собственно, производительность для тех, кому она важна, — раз. И тот или иной набор функционала — два. И он, естественно, у всех решений отличается, потому что если бы он был абсолютно идентичный, выбора особого не было бы. Ну и вот, есть такая не то чтобы постоянная борьба и ежедневные оглядки друг на друга, но естественно, что производительность, набор функционала внутри различаются промеж всех доступных как софт решений. Я имею в виду и коммерческие, и «открытые» одновременно. Условно говоря, берешь Fast, он вроде как и работает, с одной стороны. Но производительность — с ней все плохо, с другой стороны. Контролировать ранжирование результатов, например, не то чтобы нет никакой человеческой возможности, но это крайне все сложно, натужно и т. д. За лицензии приходится заносить изрядно постоянно, причем каждый год, как на работу. И берешь, например, думаешь и говоришь: «Что-то как-то некомфортненько. Давайте срочно соскочим с коммерческого поисковика на „открытый“». Соскакиваешь, выясняется, что счастья нет. По той простой причине, что совершенно универсальных потребностей еще, к несчастью, в мире не изобрели, регулярно возникают какие-то своеобразные личные такие. И хорошо, когда эти личные потребности…
С. И.: … совпадают с возможностями поисковика, да?
А. А.: … сводятся к чему-то, скажем так, понятному. Сводятся к тому, что у одного человека в бложике в базе данных колоночки называются Title и Content, а у другого, соответственно, потому что русский программист писал, они называются Zagolovok и Soderjanie. Их легко переконфигурировать: тут «маппишь» поля так, тут «маппишь» поля вот так, и все хорошо. Поэтому задача принципиально ничего нового в себе не несет, она легко решается. Все значительно интереснее, когда у тебя внезапно, не дай бог, возникают какие-то своеобразные, специфичные для твоего бизнеса или для твоего проекта, если он не бизнес, требования. Ну вот, к несчастью, требований в мире много.
С. И.: Да.
А. А.: Из-за этого, соответственно…
С. И.: … лучше иметь «открытый» продукт, который можно как-то…
А. А.: Для нас это плохо очевидно.
С. И.: Почему?
А. А.: Ну, потому что мы вынуждено обрастать фичами!

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

С. И.: Ты в своих презентациях говоришь о том, что Sphinx помимо поиска имеет «много чего». Вот чего? Расскажи подробней с этого момента. Что он еще умеет?
А. А.: Надо сообразить.
С. И.: А загадочная фраза, она прямо так и обрывается — «много чего».
А. А.: Шо мы имеем с гуся помимо поиска?
С. И.: Да.
А. А.: Можно даже сказать, чего мы не имеем с гуся помимо поиска, но это, наверное, отдельный вопрос. Просто поиск по ключевым словам — это такая штука, как я люблю врать, нужная только Google и «Яндексу». Но понятное дело, что это брехня, потому что даже, точнее, в особенности у Google и «Яндекса» у тебя дело не ограничивается поиском по ключевым словам, но для конечного пользователя оно выглядит примерно так. Для конечного пользователя Google и «Яндекса». То есть у обычного нормального пользователя, который приходит на страничку, вводит несколько ключевых слов, происходит чудовищная магия и…
С. И.: … и он думает, что ему просто помогают по доброте душевной, да.
А. А.: И в ходе чудовищной магии, как кажется пользователю, исключительно на основании этих ключевых слов ему выдают некий результат поиска. На самом деле помимо ключевых слов в этом результате поиска учитывается еще масса всего. И конечному пользователю софта про поиск, какого бы то ни было, это все становится мгновенно видно. Потому что как только ты, например, делаешь поиск не просто по своей коллекции, условно говоря, книжек или по личному бложику, в котором у тебя единственная потребность, — это натурально найти по ключевым словам, и, может быть, сранжировать, и, что действительно смешно, действительно «может быть, сранжировать»… Потому что на таких крохотных коллекциях зачастую хватает обычного поиска по наличию или отсутствию ключевых слов, у тебя потребности растут, если все несколько сложнее, и внезапно приходится морочиться с задачами типа: так, а пользователь ввел кривой запрос, надо хоть что-то с ним делать и хоть что-то показывать. Я ищу все слова одновременно, а это плохо, потому что у меня ни одного товара в базе нет, у которого все слова одновременно совпадали бы с ними, а есть только товары, у которых совпадение, скажем, трех слов из пяти, и надо по этому поводу что-то делать. Надо что-то делать с ранжированием, надо вперед пихать — кстати о птичках, — возможно, не тот результат поиска, который наиболее релевантен с точки зрения некой волшебной текстовой релевантности, которой вообще, кстати, в природе не существует, а все-таки тот результат, который при прочих равных продается, например, лучше. Это с точки зрения так называемой чудесной релевантности, может быть, нехорошо, а с точки зрения бизнеса и интернет-магазина — очень полезно. А как только ты это делаешь, у тебя лезут, значит, другие интересные артефакты, о которых можно опять-таки рассказывать вечно. Ну, приведу смешной пример, чисто для…
С. И.: … понимания.
А. А.: … и нагнетания ужаса.
С. И.: Да-да-да, обязательно.
А. А.: Берешь, например, делаешь совершенно нехитрый ход. Думаешь так: пользователи что-то ищут и, например, покупают после этого. Это очень хороший сигнал. То есть, если человек просто пришел, пошарился у тебя на сайте, что-то поискал, просмотрел 100500 результатов и пошел на какие-то связанные продукты, это, по большому счету, ничего не значит. Потому что пришел я, например, покупать флэшку, а случайно купил тонометр. Ну, так бывает иногда. Буквально третьего дня была такая ситуация, и это не значит, что тонометр — это очень релевантный товар, который надо показывать по ключевому слову «флэшка». Это просто так сложилось. Но тем не менее возникает идея, что если ты купил что-то, не просто результат просмотрел, а прямо купил — это же живые деньги, это просто так не заспамить, — то неплохо бы этот поисковой результат подмешать. И внезапно у тебя по ключевому слову «айфон» топовый результат, который отранжирован просто втупую или по объему продаж, или по числу, — это мало того что чехлы, так еще и для Samsung. А ключевое слово было «айфон»!
С. И.: Ну что ж, это достаточно показательно! А 2013 году на твоем поисковом сервере было зафиксировано 300 млн запросов в сутки. А в 2014 году что-то изменилось? Есть ли какая-то статистика?
А. А.: Поскольку у нас это продукт, который мы раздаем, собственно, у нас на сайте «поисковых запросов», условно говоря, вообще нет. То есть что-то люди, конечно, ищут, но там трафик смешной. Эти 300 млн запросов в сутки — это только один из веб-сайтов, конкретно Craigslist, который наш софт крутит. И науке совершенно неизвестно ни что происходит у Craigslist, ни сколько еще есть сайтов и какого объема. Ну, мы примерно знаем несколько пользователей, у которых высокая поисковая нагрузка. Ну, мы знаем, что в прошлом году у Craigslist было 300 млн запросов в сутки. Мы знаем, что в этом году у Avito, например, порядка 200 млн, если я не ошибаюсь и сильно их не демонизирую, запросов в сутки к поиску. Еще есть сильно «пригруженные» копии. Но за счет OpenSource совершенно невозможно понять, что в мире есть еще. Тут моя любимая мантра: может быть, где-нибудь толпа секретных индусов на границе с Пакистаном сидит и «пилит» какой-нибудь мощный проект на аудиторию всей Юго-Восточной Азии. У них 1,5 млрд запросов в сутки, но мы об этом ничего не знаем, просто потому, что они вообще не говорят ни на одном понятном нам языке и с нами поэтому не связываются.
С. И.: Но к этому надо быть всегда готовым.
А. А.: Ну, так бывает иногда. Бывает, приходит к тебе какой-то сильный большой проект, и внезапно выясняется, что, оказывается, там внутри. Или наоборот.
С. И.: А я правильно понимаю, что технология Sphinx позволяет разработчикам создавать кастомизированные приложения? Ты можешь рассказать о них, что это за приложения, для каких задач предназначены, под какие цели, всегда ли они связаны с поиском?
А. А.: У нас поисковой сервер, это не платформа для разработки приложений. Мы помогаем в той части, которая про поиск. То есть это, скорее всего, в основной своей массе веб-приложения, а не штуки «коробочные», хотя несколько «коробочных» штук тоже есть. Есть чуть-чуть проектов, которые интегрируют Sphinx прямо к себе, и, грубо говоря, на компакт-диске поставляется приложение, в него заинтегрирован Sphinx, к нему приложена некоторая фиксированная, заранее построенная база данных. И для того чтобы поиск руками не писать, они пользуются Sphinx-движком. Это один вариант. И второй вариант — это когда продается «коробочное», так сказать, решение…
С. И.: …для интернет-магазина, например, да?
А. А.: Нет, «коробочное» решение не в смысле «коробочное» софтовое решение, а натуральный «железный» сервер. Некий черный ящик физический, внутри которого некоторый чудесный софт, который «что-то» делает, и внутри как один из компонентов этого чудесного «чего-то» используется Sphinx. Опять-таки либо для поиска, либо как такая «недобаза данных», либо такая аналитическая странная утилита.
С. И.: По технологии Sphinx Search Engine осуществляется поиск на «Хабрахабре», на «Викимапии», на «Санкт-Петербургском Доме книги», даже в торрент-трекере «Пиратская бухта», а также в CMS встроена — в «1С-Битрикс» и в UMI, да?
А. А.: Все подряд, натурально все подряд. Повторюсь, «открытая», поэтому люди берут пользуются, и нам за это ничего не бывает.
С. И.: Например, есть востребованность именно в e-commerce?
А. А.: Понятное дело, что она есть везде.
С. И.: Да.
А. А.: Задача про поиск возникает везде. В e-commerce — с одной стороны, для личных проектов — с другой стороны, «социалка» — с третьей стороны, контент-проекты — с четвертой, что угодно. То есть в момент, когда тебе надо поиск, — раз, и в момент, когда у тебя привычные средства больше уже не адекватны, — два, но надо что-то делать. В этот момент у тебя есть выбор из нескольких технологий.
С. И.: А в прошлом году у вас были переговоры с Sotmarket, я так и не знаю продолжение этой истории. Sotmarket пользуется?
А. А.: Переговоры с Sotmarket? Прямо переговоров таких не было, мы с ним немного встречались, устраивали мини-мероприятия: просто посидеть, встретиться, рассказать им про всякое, с одной стороны, ну и использовать их офисы, для того чтобы пришли желающие в гости и послушали все то же самое, — с другой стороны. Насколько я знаю, они просто успешно пользуются Sphinx, по меньшей мере на тот момент пользовались, потому что, повторюсь, никогда не знаешь. Может, у них серверов в два раза стало больше, а может, наоборот, им надоело, они соскочили и поставили что-нибудь еще, написали что-нибудь свое. Так тоже бывает.
С. И.: Вернемся к приложениям. Ты можешь назвать какие-нибудь приложения на базе Sphinx, которые бы ты считал наиболее популярными и, самое интересное, которые бы лично тебе просто нравились? «Вот хорошо, гады, сделали, отлично смотрится, отлично работает, удачное решение!»
А. А.: Именно приложения? Ну, сложно сказать.
С. И.: Ты их все считаешь, как говорится, равными?
А. А.: Меня не надо об этом спрашивать, у меня перекошенный взгляд на жизнь. Я же пользуюсь полутора утилитами в мире и полутора веб-сайтами в мире. Поэтому мне сложно судить, что какой-то веб-сайт №1 и они намного лучше веб-сайта №2, тем более когда речь про приложения. Еще раз повторюсь, особенного смысла нет вставлять в приложение на «айпадик», условно говоря. Потому что, скорее всего, у тебя там данных будет мало. И скорее всего, тебе какой-то сложный специализированный поисковый движок, в общем-то, и не нужен. У нас есть интересные инсталляции с технической точки зрения. Но они все как раз про то, что много данных либо сложная обработка. Навскидку пара самых интересных инсталляций — и обе, по-моему, под NDA, заразы! Раз — это гигантская инсталляция про социальный data mining. Она интересна просто масштабами и калибрами, потому что она постоянно растет, они данные никогда не стирают. И доросла уже, по последним оценкам, до 1200 серверов, и они постоянно ставят новые. Любопытно! Вторая интересная инсталляция — это люди строят региональный поиск по некоему региону, по, грубо говоря, маленькой, но гордой стране. Здесь интересно то, что, как выяснилось, технология, в принципе, с определенными доработками, — понятное дело, без спецразработки не обошлось, — но она позволяет что-то делать на тему элитной «релевантности», скажем так. Потому что задача под названием «давайте построим релевантность, адекватную веб-поиску» — это штука, совершенно отличающаяся от задачи «у меня есть форум, я хочу, чтобы на нем посты хорошо искались».
С. И.: Нет, ну, форум — это форум, а маленькая гордая республика — это нечто больше.
А. А.: Нет, форумы бывают, я боюсь, побольше некоторых маленьких гордых республик. Потому что возьмем какую-нибудь маленькую гордую республику на миллион населения — это одно. А самые крупные форумы в «интернетах» — я читал про какие-то совершенно безумные метрики, там количество данных измеряется миллиардами сообщений, чуть ли не триллионами. Ну, триллионами-то вряд ли, конечно, но миллиардами натурально. Есть какие-то форумы в «интернетах» дико матерые, на которых реально документов, как, грубо говоря, во всем Рунете образца, не знаю, 2005 года. Невероятно, но факт.
С. И.: Ты своим рассказом про инсталляции, по-моему, предвосхитил мой вопрос, потому что я уже тихонечко подбирался к тебе коварно, чтобы узнать, как же можно заработать на бесплатном ПО, на бесплатных технологиях. Я правильно понимаю, что основные виды заработка — я покопался у тебя на сайте — это, собственно, помощь в инсталляции, консалтинг, обучение. Что еще? Или я неправильно понимаю ситуацию?
А. А.: Традиция такая, что ты раздаешь собственно софт бесплатно, за лицензии денег не берешь и, соответственно, пытаешься зарабатывать со всех дополнительных услуг. Там несколько каналов бывает. У нас, по-моему, в зависимости от всякого работают все. Канал под названием «консалтинг». Канал под названием «поддержка» — это несколько иное. Канал под названием «обучение». Хотя эти три: консалтинг, поддержка, обучение, — это по большому счету, можно слить в одно, но технически немного разные. Раз — такой единый в трех лицах. Следующий канал — лицензирование. То есть в тот момент, когда ты хочешь к себе вставить конкретно наш движок, у нас лицензия требует тот самый GPL. Он требует чего? Он требует, либо чтобы ты «заразился» GPL и раскрыл свои исходники тоже, либо чтобы, соответственно, приобрел коммерческую лицензию. Что в случае OpenSource-проекта нормально: ты можешь себе позволить и исходники раскрыть. А в случае если ты продаешь «коробочку» за 50$ тыс. за один сервер, который отгружается клиенту, наверное, у тебя не всегда возникает желания раскрывать исходники. В этот момент может наступить лицензирование. Ну и третий канал, который не очень хороший в моем представлении. Ну, в идеальном мире, как мне кажется, он не очень хороший с точки зрения здоровья, что ли, проект, но тем не менее все равно есть и все равно для нас до сих пор существенный. Это дополнительная разработка.
С. И.: Да, в чем она заключается?
А. А.: Есть какой-нибудь достаточно большой пользователь, который сидит-сидит, значит, со своей фермой из 40 серверов, условно говоря. Потом он дорастет постепенно до 60 серверов и — пример выдуманный — упирается в какой-нибудь лимит. И он понимает, что существенно дешевле пойти к разработчику и сказать: «Мужики, дико надо, чтобы вы убрали этот лимит, или починили этот баг, или дописали такую функциональность, которая нам очень нужна», — чем делать что бы то ни было еще: чем мигрировать на другую систему (это жуть) или, соответственно, «костыли» какие-то изобретать на своей стороне.
С. И.: Но за этим он может обратиться исключительно к вам или к каким-то другим разработчикам тоже?
А. А.: За счет того что проект «открытый», технически это дело добровольное, а не так, что хочешь — да, а хочешь — нет.
С. И.: Но понятно, что лучше к первоисточнику припадать.
А. А.: Другое дело, что к нам — типично это выгоднее, просто без затей выгоднее. Ну, всегда вопрос экономической целесообразности. Если у тебя получается так, что выгоднее всего купить коммерческий софт, ты покупаешь коммерческий софт. Ну в самом деле, если программа стоит 15$, делает все, что тебе нужно, прямо идеально, у тебя цена на поддержку всего этого добра затем равна нулю, надо, очевидно, покупать программу за 15$. Если, наоборот, она мало того что коммерческая и дорогая, как черт знает что, но еще и с поддержкой головняки и не хватает всякого, наверное, лучше в любом случае переходить на «открытый» софт, как ни обидно это было бы, просто по той причине, что у тебя получается хотя бы возможность что-то сделать. То есть традиционная беда с коммерческим софтом понятна, и традиционная радость тоже. Пока оно работает и работает за вменяемые деньги, все прекрасно. Но как только у тебя есть платная поддержка, но софт не работает, ты зафарил баг, не более чем через два года его починят. А продакшн-кластер у тебя прямо уже сегодня, в принципе, «висит», и ты себя некомфортно ощущаешь по этой причине. Ну, тут как-то начинается желание соскочить с удобной замечательной коммерческой поддержки и перебраться на что-нибудь еще. Причем это, возможно, в итоге окажется даже дороже, как ни удивительно. Но по меньшей мере за это «дороже» у тебя появляется повышенный контроль за ситуацией и возможность решать проблемы.
С. И.: А какой из этих каналов для тебя и, может быть, для всех OpenSource-проектов прибыльный и как раз более масштабируемый?
А. А.: Какой более масштабируемый, тут вопросов нет. Более масштабируемый, очевидно, лицензирование. Сделка про лицензирование не требует ничего. Это конкретно для нас, потому что у нас код GPL. Соответственно, публично мы его предлагаем под лицензией GPL, но кодом полностью владеем. Соответственно, мы, условно говоря, имеем право лицензировать. Есть проекты, в которых это сделать просто невозможно, с одной стороны, и которые изначально, например, распространяются под менее ограничивающей лицензией, с другой стороны. Бери, вставляй — никому ничего не должен. Это лучше всего масштабирующийся канал. Понятное дело, что его масштабировать никаких усилий не надо. Знай контракты подписывай, условно говоря, и все будет хорошо. На самом деле не все так просто и здесь: ручная работа требуется, но ее сравнительно меньше. Все остальное — это ручная работа, так или иначе. Увы и ах! И ты получаешься стандартной сервисной компанией, а не продуктовой компанией, но это как бы и хорошо и плохо.
С. И.: Можешь рассказать нашим зрителям о дальнейших планах по развитию Sphinx или других твоих проектов, которые, может быть связаны, а может быть, не связаны со Sphinx?
А. А.: Но других пока нет. Я еще ничего интересного не придумал.
С. И.: А что ждет Sphinx в ближайшем будущем?
А. А.: У нас, скажем так, определенный гнет прошлого скопился. Назрело, с одной стороны, и для того чтобы догонять ряд штук, которые у врагов есть, а у нас нет, с другой стороны, нам надо сделать ряд довольно существенных внутренних переделок сугубо технического характера. То есть здесь мы делали штуку X так, а надо эдак, делали штуку Y так, а опыт показал, что надо переделывать.
С. И.: Но это будет преемственная система или кардинально новый продукт?
А. А.: Нам придется сломать совместимость в нескольких местах, но я думаю, миграция может быть умеренно нетяжелая. Плюс тут амбициозный план следующий: значит, сделать все переломы, с одной стороны, сломать совместимость, «выкатить» альфу, которой как-то можно будет пользоваться, и, собственно, посмотреть. Если будет спрос, скажем так, на то, чтобы какие-то специальные утилиты для миграции делать, мы будем этим заниматься тоже.
С. И.: А в какие сроки ты предполагаешь реализовать этот слом и «выкатить» этот новый продукт?
А. А.: Вопрос крайне сложный, потому что прогнозировать разработку под названием «несколько человек одновременно „пилит“ несколько существенных внутренних переделок, а потом мы все это интегрируем» чуть менее чем невозможно. Но я искренне надеюсь, что мы что-то начнем показывать в этом году. Но на то, что полноценно закончим в этом году, я, наверное, не очень надеюсь, но всегда готов приятно удивиться. Вот так.
С. И.: В завершение передачи я как раз хочу обратиться к тебе как к настоящему сфинксу, потому что при всей твоей публичной деятельности как-то не очень густо и полноценно представлена информация о тебе.
А. А.: Ну, рассказывать особенно нечего.
С. И.: Да, но как? Нет, красивые картины ресурс ProfyClub живописно рисует: «В прошлых профессиональных жизнях веб-разработчик (два раза), технический директор с уклоном в 3D-графику, системный программист и т. д. Писал много кода, делал много презентаций, управлял командами разработчиков, чем и продолжает с переменным успехом заниматься». Судя по стилю, кстати, это все твоя формулировка.
А. А.: Ну а как еще?
С. И.: Да, тут уже видно сразу. Можешь рассказать, например, конкретно назвать, где ты работал, какие 3D-графики рисовал? А, еще же тебя называют «игроделом», какие игры создавал?
А. А.: Ну да, в прошлом «игродел». Начал натурально с веб-разработки, но матерое место работы, помню, было под названием ОАО «Липецкэлектросвязь», теперь часть «Ростелекома».
С. И.: Именно там ты был «игроделом»?
А. А.: Нет, именно там я был веб-разработчиком. Всем понятно, какой веб-разработкой можно заниматься в ОАО «Липецкэлектросвязь» в 2001 году, по-моему, что-то типа того.
С. И.: У нас был один гость, который вел программу об интернете, когда интернета практически не было, так что мы ко всему привыкли.
А. А: Тоже неплохо. Основная суть этой веб-разработки заключалась в полутора вещах. Была факультативная вещь на полставки, скажем так. Ты, собственно, делал ту работу, которую необходимо делать, с точки зрения руководства на местах. То есть приходят, как ни удивительно, какие-то клиенты рисовать и хостить свои замечательные открытки на пять страниц здесь и сейчас, и вот ты этим, собственно, занимаешься. HTML, очень редко JavaScript, но почти всегда, по-моему, база данных, потому что динамический прайс-лист — это сила, «абибас» — это сила. Динамический прайс-лист и, конечно, гостевая книга — это было наше все. Это менее важная часть деятельности в ОАО «Липецкэлектросвязь». А более важная часть деятельности в ОАО «Липецкэлектросвязь» — и собственно, почему я и еще пара-тройка знакомых туда пошли — заключалась в том, что ADSL не было, FTT, что угодно как бы… И этот dialup за 3,50 в час, причем 3,50 — это 3,50$ в час при средней зарплате в регионах на местах, не знаю, 50, 100, может быть, в прыжке 200$. Это было исключительно «небюджетненько». Поэтому, чтобы был хоть какой-то доступ в интернет, приходилось работать на местного провайдера.
С. И.: Спасибо «Липецкэлектросвязи», я так считаю.
А. А.: Нет, ну конечно, чего, дала продержаться!
С. И.: И два раза… Это первый раз, когда ты был веб-разработчиком, и, соответственно, был второй раз.
А. А.: Честно говоря, уже не помню, что конкретно я там имел в виду под «двумя разами».
С. И.: А, понятно, это была цитата из кинофильма.
А. А.: Потому что тем или иным образом с веб-разработкой, понятное дело, приходится сталкиваться неоднократно. Работал там, работал еще удаленно в некоей компании. Следующая интересная работа была — ну, собственно, как раз игры делать, мы этим занимались.
С. И.: Именно там ты 3D-графикой занимался?
А. А.: Да, мы этим занимались, по-моему, с 2002 по 2007-2008 годы.

Мы придумали себе амбициозное развлечение под названием «давайте с нуля построим трехмерный движок, давайте построим весь toolset, весь набор утилит для этого трехмерного движка, давайте на нем построим игру и дико угорим». Что удивительно, получилось!

Мы построили движок, построили набор утилит, построили на нем игру по кличке «Магия крови». Я изредка встречаю людей, которые в нее играли. Я не играл. Это было осознанное бизнес-решение. Я где-то за пару месяцев до ухода на «золото», до печати master disk на заводе — на компакт-диск же закатывали, все по-взрослому, — сел поиграть вечерами. Дома. Факультативно.
С. И.: И пропал.
А. А.: Нет, если бы пропал, то было бы не так все плохо. И где-то за два или три вечера «зафайлил» во внутренний баг-трекер около сотни багов. После этого я сам себе сказал: «Хватит!» И вместо того чтобы «файлить» новые сотни багов за три дня, занялся тем, чтобы исправлять совершенно критические и менее критические и все-таки выйти вовремя. Сделали в рамках той конторы «Магию крови». Сделали аддон к ней, начали делать вторую серию, сделали проектик про гоночки. Подняли, так сказать, из прошлого мегабренд под названием Death Track, который все забыли. Лицензировали «двигло» для еще нескольких проектов, из которых самым удачным, насколько я знаю, был, как же он назывался-то… Вот, профессиональный перекос!
С. И.: Да, давно все это было. Слишком много бурных событий.
А. А.: «Легенда о принцессе» или что-то типа того. А, King’s Bounty, точно! Была владивостокская компания и до сих пор, может быть, есть — Katauri, которая под крылом 1С восстановила, так сказать, из мертвых бренд под названием King’s Bounty. Была King’s Bounty №1 — что-то там. Была, по-моему, вторая серия «Легенды о принцессе». И, по-моему, она настолько хорошо продалась, что это по итогам была на нашем движке самая, так сказать, популярная игра. Потом пришел кризис 2008 года…
С. И.: И он сыграл свою позитивную роль.
А. А.: И весь советский «писишный» геймдев постепенно заселили японские моряки!
С. И.: И ты вышел из этого безнадежного дела?
А. А.: Я сбежал немного пораньше, потому что мне немного пораньше, по-моему, в конце 2006 или 2007 года, я уж не очень помню совсем точно, стало ясно, что есть у меня «карманный» проект под названием Sphinx…
С. И.: Вот на каком витке своей профессиональной карьеры ты пришел к идее Sphinx? Как это было?
А. А.: Не на витке профессиональной даже карьеры. У меня был личный сайтик. По-моему, он сдох уже успешно, что хорошо, с коллекцией текстов песен. И меня дико настораживал тот факт, что большая коллекция текстов есть, а ничем человеческим я по этой коллекции строчку, «снятую» с эфира, поискать не могу. А в тот момент, когда могу, качество поиска оставляет желать лучшего. Это было давно и неправда, 2000-2001 годы. Я делал несколько подходов, я попробовал несколько доступных на тот момент — по-русски, по-моему, это невозможно сказать — «программных обеспечений», но, в общем, давайте скажем «систем». Я попробовал несколько доступных на тот момент систем. Все они по разным причинам были очень-очень плохи. Lucene на тот момент, по-моему, уже появился, но был очень-очень-очень плох. Еще несколько штук просто без затей не осиливали национальные языки никак. И то, что кое-как работало, называлось, по-моему, UDM Search, но работало, опять-таки, на тот момент натурально кое-как. С тех пор прошло много времени, все переделывалось много раз, и часть из этих систем, наверное, уже сдохла, часть дико развилась. Еще есть мы.
С. И.: Ну, это как раз был импульс. И какое-то время ты занимался этим для себя, для личных потребностей, и вдруг ты понял, что на самом деле это захватывает все больше и больше тебя? Или это было какое-то внезапное озарение? Как все произошло?
А. А.: Нет, ничего внезапного. Оно как раз так постепенно нарастало, скажем так. Сначала оно было натурально для себя и для друзей, то есть я раз в 3-12 месяцев возьму попишу что-нибудь…
С. И.: А, ты тестил еще на ком-то, да?
А. А.: Ну, я раздавал друзьям и знакомым, публично ничего не раздавал. Возможно, была мегаошибка, теперь не узнать. Оно в таком режиме существовало где-то с 2001 то ли по 2005, то ли по 2006 год. Где-то в 2005-2006 году я познакомился с товарищем Зайцевым, который в тот момент работал в MySQL, потом ушел оттуда в свободное плавание и сделал лавочку про консалтинг-услуги вокруг MySQL. Зайцев, значит, увидел в проекте потенциал под названием «можно же брать и выкладывать в OpenSource и смотреть, а вдруг бизнес-модель MySQL сработает». Бизнес-модель как бы, с одной стороны, сработала, но, с другой стороны, не сработала. То есть она сработала в том плане, что, да, продукт оказался умеренно востребованным, достаточно хорошим на тот момент и какое-то распространение получил. Но в том небольшом моменте под названием «продажа MySQL AB Sun Microsystems за миллиард долларов» она не сработала, к несчастью.
С. И.: Но в момент первого выхода вы уже были лучше Lucene?
А. А.: Да, естественно, потому что иначе зачем все? То есть, если на рынке уже есть…
С. И.: Может быть, просто догоняли?
А. А.: Это смысла не имеет совершенно. Более того, даже если ты выходишь на рынок, на котором уже кто-то есть с продуктом, который лучше, но на рынке кто-то есть, то ты, скорее всего, все равно проиграешь, как ни странно.
С. И.: Звучит, конечно, так жестоко, но мне кажется, это очень оптимистичная нота, потому что стимулирует на создание новых продуктов.
А. А.: Я наблюдаю просто несколько примеров живьем. Собственно, вот наша «борьба», с одной стороны, с Lucene. Вот пример, понятный, кстати, русскому человеку: Apache и nginx. Уже 2014 год на дворе, вообще не смешно! Посмотрите на долю рынка у Apache и у nginx. Она, понятное де

Развернуть текстовую версию
Комментарии
Похожие видео
Еще видео