Семинар «Реальная виртуализация?! Или актуальные способы повышения эффективности использования вычислительных ресурсов и систем хранения».
Подробнее о мероприятии http://www.croc.ru/action/detail/1464/
Презентация Антона Котцова, ведущего инженера, КРОК
Создание электронной библиотеки научных трудов на платформе Dspacebntulibrary
Создание электронной библиотеки научных трудов на платформе Dspace
Создатель презентации Дедёнок Юрий Леонидович, зав. сектором формирования репозитория и развития интернет-технологий НБ БНТУ
NoSQL - что это? Новомодное словечко или современных подход, который позволяет обслуживать сотни миллионов запросов в день без использования супер-компьютеров? Почему все крупнейшие интернет-проекты используют базы данных, которые не поддерживают операций по связыванию данных, не гарантируют ACID при проведении транзакций и не имеют фиксированных схем хранения данных? В данном докладе будут проанализированы области применения NoSQL, раскрыты основные принципы, которые используются для хранения записей в неряционных БД, а также приведены характеристики по которым можно классифицировать сотни существующих на данный момент NoSQL базы данных.
Семинар «Реальная виртуализация?! Или актуальные способы повышения эффективности использования вычислительных ресурсов и систем хранения».
Подробнее о мероприятии http://www.croc.ru/action/detail/1464/
Презентация Антона Котцова, ведущего инженера, КРОК
Создание электронной библиотеки научных трудов на платформе Dspacebntulibrary
Создание электронной библиотеки научных трудов на платформе Dspace
Создатель презентации Дедёнок Юрий Леонидович, зав. сектором формирования репозитория и развития интернет-технологий НБ БНТУ
NoSQL - что это? Новомодное словечко или современных подход, который позволяет обслуживать сотни миллионов запросов в день без использования супер-компьютеров? Почему все крупнейшие интернет-проекты используют базы данных, которые не поддерживают операций по связыванию данных, не гарантируют ACID при проведении транзакций и не имеют фиксированных схем хранения данных? В данном докладе будут проанализированы области применения NoSQL, раскрыты основные принципы, которые используются для хранения записей в неряционных БД, а также приведены характеристики по которым можно классифицировать сотни существующих на данный момент NoSQL базы данных.
Основные тренды развития систем управления контентом, что такое контент, почему Drupal отлично подходит для крупных международных проектов
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Доклад Сардора Хасанова - менеджера проектов Центра программистов BePro на семинаре в Центре развития и внедрения компьютерных и информационных технологий UZINFOCOM 26 июня 2013 г.
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиDrupalSib
DrupalCafe#9@Novosibirsk https://vk.com/drupalcafe9
Drupal + Solr или как сделать Яндекс маркет своими руками
Требования к интернет каталогам товаров и инструменты Drupal для создания современных каталогов.
Как сделать каталог, который будет продавать
-----
Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru
Группа сибирского сообщества друпаллеров Вконтакте vk.com/drupalsib
Партнер Группа компаний И20 i20.biz
Производительность параметрического поиска на основе опенсорс-платформыYandex
В докладе рассматриваются особенности системы параметрического поиска, построенной на базе опенсорс-плаформы Apache Solr. Речь пойдёт о проблемах производительности такой системы и некоторых методах их решения — в том числе о применении различных способов построения запросов для уменьшения времени ответа системы.
В данном выступлении будет рассказно об общих принципах организации систем полнотекстового поиска на примере движка Sphinx. Будут рассмотрены структура и организация поискового индекса, на примере разобраны различные механимзы индексирования. Речь пойдет также и о продвинутых методиках работы со Sphinx: индексы реального времени, атрибуты с несколькими значениями, дельта-индексирование. Все это будет не только описано но и продемонстрировано, а желающие смогут проделывать все операции у себя на ноутбуках параллельно с докладчиком (см. описание программных требований).
Вторая часть будет посвящена непосредственно поиску и взаимодействию с движком Sphinx из программного кода на языке C#. Будут использованы механизмы обращения к Sphinx как используя нативный протокол, так и через MySQL-адаптер. Будет показано применение библиотек Sphinx.Client, Scarab и ByndyuSoft.Infrastructure.Sphinx, две из которых созданы автором мастер-класса. Также будут рассмотрены типовые ситуации использования Sphinx и шаблоны организации поиска.
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
Сегодня Интернет увлечен микросервисами, контейнерами и immutable-инфраструктурой. Очень сложно не поддаться искушению внедрить что-то подобное в компании, в которой вы работаете сейчас. Я попытаюсь отговорить вас использовать эти технологии во вред приложению, себе и бизнесу компании в целом. Я расскажу о типовом проекте, который был запущен в 20 странах за 4 месяца, проблемах, которые я встретил, и выводах, которые я сделал.
- Почему микросервисы не спасут, а похоронят ваш проект.
Я расскажу на основе собственного опыта, почему не стоит увлекаться микросервисами для небольших проектов, почему благие намерения — упрощение деплоя и увеличение числа деплоев, увеличение доступности и улучшение масштабирования ведут к отсутствию гибкости и критическому уменьшению стабильности системы.
- Почему ваша система слишком сложна для своих задач.
Я расскажу, почему не стоит усложнять систему, почему, скорее всего, ваша система слишком сложна для задач, которые она решает и почему вы не контролируете то, что происходит в системе. Я объясню, почему вы потратите все свое время на отладку сложной системы, вместо того чтобы решать задачи бизнеса.
- Почему Docker используется неправильно.
Будут предоставлены реальные примеры использования Docker для нового проекта и для портированного проекта, я объясню, с какими проблемами сталкиваются операторы при работе с Docker на живых примерах, объясню, почему вы, скорее всего, используете Docker неправильно, и предложу варианты, как этого избежать.
- Почему immutable слишком статичен для вашей компании.
Я расскажу про свой опыт работы с immutable и объясню, почему, на мой взгляд, переход к подобной инфраструкт
Преимущества NoSQL баз данных на примере MongoDBUNETA
Докладчик: Винников Олег – .NET Developer in Digital Cloud Technologies (https://twitter.com/#!/VinnikovOleg)
Тема доклада: «Преимущества NoSQL баз данных на примере MongoDB».
Доклад посвящен альтернативе реляционных СУБД - классу концепций NoSQL. Вы узнаете о основных видах NoSQL баз данных, их отличие и преимущества перед реляционными базами данных. Как основное преимущество, в докладе будет рассмотренно масштабирование NoSQL баз данных на примере MongoDB. Ключевые вопросы, которые будут рассмотрены в докладе:
- Почему NoSql;
- Краткий обзор видов NoSql баз данных;
- Масштабирование NoSql баз данных;
- Шардинг и репликация на примере MongoDB;
http://uneta.ua/community/events/9
Про некоторые кейсы использования elasticsearch в современных проектах.
- С какими сложностями столкнулись
- Где успешо применили elasticsearch, а где был избыточен
Презентация с мероприятия https://habr.com/ru/company/odnoklassniki/blog/452978/
Основные тренды развития систем управления контентом, что такое контент, почему Drupal отлично подходит для крупных международных проектов
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Доклад Сардора Хасанова - менеджера проектов Центра программистов BePro на семинаре в Центре развития и внедрения компьютерных и информационных технологий UZINFOCOM 26 июня 2013 г.
Евгений Ильин. Drupal + Solr: Яндекс.Маркет своими рукамиDrupalSib
DrupalCafe#9@Novosibirsk https://vk.com/drupalcafe9
Drupal + Solr или как сделать Яндекс маркет своими руками
Требования к интернет каталогам товаров и инструменты Drupal для создания современных каталогов.
Как сделать каталог, который будет продавать
-----
Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru
Группа сибирского сообщества друпаллеров Вконтакте vk.com/drupalsib
Партнер Группа компаний И20 i20.biz
Производительность параметрического поиска на основе опенсорс-платформыYandex
В докладе рассматриваются особенности системы параметрического поиска, построенной на базе опенсорс-плаформы Apache Solr. Речь пойдёт о проблемах производительности такой системы и некоторых методах их решения — в том числе о применении различных способов построения запросов для уменьшения времени ответа системы.
В данном выступлении будет рассказно об общих принципах организации систем полнотекстового поиска на примере движка Sphinx. Будут рассмотрены структура и организация поискового индекса, на примере разобраны различные механимзы индексирования. Речь пойдет также и о продвинутых методиках работы со Sphinx: индексы реального времени, атрибуты с несколькими значениями, дельта-индексирование. Все это будет не только описано но и продемонстрировано, а желающие смогут проделывать все операции у себя на ноутбуках параллельно с докладчиком (см. описание программных требований).
Вторая часть будет посвящена непосредственно поиску и взаимодействию с движком Sphinx из программного кода на языке C#. Будут использованы механизмы обращения к Sphinx как используя нативный протокол, так и через MySQL-адаптер. Будет показано применение библиотек Sphinx.Client, Scarab и ByndyuSoft.Infrastructure.Sphinx, две из которых созданы автором мастер-класса. Также будут рассмотрены типовые ситуации использования Sphinx и шаблоны организации поиска.
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
Сегодня Интернет увлечен микросервисами, контейнерами и immutable-инфраструктурой. Очень сложно не поддаться искушению внедрить что-то подобное в компании, в которой вы работаете сейчас. Я попытаюсь отговорить вас использовать эти технологии во вред приложению, себе и бизнесу компании в целом. Я расскажу о типовом проекте, который был запущен в 20 странах за 4 месяца, проблемах, которые я встретил, и выводах, которые я сделал.
- Почему микросервисы не спасут, а похоронят ваш проект.
Я расскажу на основе собственного опыта, почему не стоит увлекаться микросервисами для небольших проектов, почему благие намерения — упрощение деплоя и увеличение числа деплоев, увеличение доступности и улучшение масштабирования ведут к отсутствию гибкости и критическому уменьшению стабильности системы.
- Почему ваша система слишком сложна для своих задач.
Я расскажу, почему не стоит усложнять систему, почему, скорее всего, ваша система слишком сложна для задач, которые она решает и почему вы не контролируете то, что происходит в системе. Я объясню, почему вы потратите все свое время на отладку сложной системы, вместо того чтобы решать задачи бизнеса.
- Почему Docker используется неправильно.
Будут предоставлены реальные примеры использования Docker для нового проекта и для портированного проекта, я объясню, с какими проблемами сталкиваются операторы при работе с Docker на живых примерах, объясню, почему вы, скорее всего, используете Docker неправильно, и предложу варианты, как этого избежать.
- Почему immutable слишком статичен для вашей компании.
Я расскажу про свой опыт работы с immutable и объясню, почему, на мой взгляд, переход к подобной инфраструкт
Преимущества NoSQL баз данных на примере MongoDBUNETA
Докладчик: Винников Олег – .NET Developer in Digital Cloud Technologies (https://twitter.com/#!/VinnikovOleg)
Тема доклада: «Преимущества NoSQL баз данных на примере MongoDB».
Доклад посвящен альтернативе реляционных СУБД - классу концепций NoSQL. Вы узнаете о основных видах NoSQL баз данных, их отличие и преимущества перед реляционными базами данных. Как основное преимущество, в докладе будет рассмотренно масштабирование NoSQL баз данных на примере MongoDB. Ключевые вопросы, которые будут рассмотрены в докладе:
- Почему NoSql;
- Краткий обзор видов NoSql баз данных;
- Масштабирование NoSql баз данных;
- Шардинг и репликация на примере MongoDB;
http://uneta.ua/community/events/9
Про некоторые кейсы использования elasticsearch в современных проектах.
- С какими сложностями столкнулись
- Где успешо применили elasticsearch, а где был избыточен
Презентация с мероприятия https://habr.com/ru/company/odnoklassniki/blog/452978/
В «Одноклассниках» логируются любые действия пользователей, любой вызов классов и методов, любые взаимодействия компонентов системы. Через несколько минут эти данные уже видны на графиках системы статистики. Данные собирает, хранит и обрабатывет хранилище данных, построенное на базе MS SQL Server.
Для адмистраторов, разработчиков и менеджеров построены универсальные интерактивные графики. Эти графики можно настроить так, чтобы они показывали любую подвыборку данных, агрегированных по периодам, начиная с 5 минут и заканчивая годом. Из графиков составлены тематические страницы (дэшборды), которые наглядно показывают состояние всего сайта или его отдельного компонента.
В докладе будут рассмотрены архитектура, основные компоненты и примененные алгоритмы обработки данных.
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 14:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2471.html
Знаете ли вы, что такое прогрессивный рендеринг?
Почему вам стоит его использовать?
Какие есть варианты сегодня?
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Не все базы данных одинаково полезны. Сергей Аверин, Badoo.
Выбор хранилища данных — сложная задача, с которой часто сталкиваются раз- работчики. Чаще всего результат этого выбора — это компромисс. Я расскажу о собственном опыте, набитых «шишках», рассмотрю важные, на мой взгляд, связанные с этой задачей проблемы.
• Зачастую в стартапе изначально проектируется архитектура вокруг БД, рассчитанная на огромные нагрузки, на большое масштабирование, ко- торые потом в реальной жизни никогда не понадобится.
• Или проектируется архитектура, которая якобы дает отказоустойчи- вость, но при этом проблемы нижних уровней абстракции во внимание не принимаются.
• При выборе основной БД для проекта выбирается БД, которая не дает большого запаса фич в будущем, появляется дороговизна и сложность изменения.
• Используйте инструменты, которые вы хорошо изучили. «Психологиче- ская» популярность NoSQL. Достоинства и недостатки SQL и NoSQL БД.
• Проблемы использования БД как хранилища/движка обработки собы- тий зачастую не оправдано. Альтернативы.
• Использование БД для поиска, плюсы и минусы.
• Eventual consistency рулит, и как из этого можно извлечь пользу.
Целевая аудитория:
Доклад будет интересен веб-разработчикам, особенно из стартапов и неболь- ших команд, техническим руководителям.
This talk is an introduction about technical aspects of how payment cards function, what technical protocols are involved and what are implementation complexities in a typical payments project. You will learn about concepts like Authorisation and Clearing, Tokenization and know about novelties in the payment world, which will affect consumers in the nearest future.
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Microservices created quite a buzz in software development. Those are finally being adopted, and a lot of project suffer from that... microservices bring a lot of infrastructure and distributed programming complexity not all organisations can cope with. Question is – is it possible to gradually migrate to microservices architecture without Big Bang/Rewrite From Scratch approach? I would say it is possible, and is a much better idea compared to installing Kubernetes on AWS on day one. This talk is based on practical experience of architecting business applications to scale out and grow up to become micro services one day.
How to Build Your Own Test Automation Framework?Dmitry Buzdin
Even though there are plenty of open source tools on the market every company needs to put them together and create a test automation framework on top. Best practices of doing that are quite well-known in industry and it is important to learn them before building your own framework. We will go through the core building blocks of test automation frameworks and how they are playing together. You will learn how to assemble your test automation toolchain out of open source libraries and how to integrate them together. The session will be heavily biased towards Java platform.
2. Одноклассники в цифрах
• Что у нас есть:
– 100 млн пользователей;
– 3.3 млн групп;
– .....
• 4.1 млн пользователей онлайн;
• В секунду:
– 250. тыс. страниц, 50мс, 70Гбит/с;
– 6 тыс. сообщений и комментариев;
– 1.5 тыс. поисковых запросов.
1
3. Зачем нам понадобились свои поисковые
системы?
• Пользователь не всегда знает, как именно
регистрировался искомый друг
• На сайте были огромные каталоги групп и
сообществ
• Планировались новые сервисы, которым
понадобится поиск
• Как правило, человек ищет то, что уже есть у
кого-то из его друзей
2
4. Почему Lucene?
• Поиск по MS SQL базе был крайне медленным
• На Java написано 99% нашего кода, поэтому
Sphinx даже не смотрели
• Apachе Lucene/Solr поддерживаются большим
сообществом и хорошо себя зарекомендовали
• Уже был опыт использования Solr
• Быстрый поиск других поисковых
Java-проектов результатов не дал
3
5. Как устроен Lucene?
The bright Term DocId DocId Values
blue blue 1,2 1 333, Author A
Index Reader & Searcher & Query parser
butterfly bright 1,2 2 777, Author C
hangs on
Tokenizers & Filters & IndexWriter
butterfly 1
the breeze
breeze 1
hangs 1
Under blue
sky, in bright need 2
sunlight, search 2
one need sky 2
not search
around
Term DocId DocId Values
It’s best to best 1 1 555, Author C
forget the forget 1
great sky
great 1
and to retire
from every retire 1
wind sky 1
wind 1
4
6. Требования к системе индексов
• Отказоустойчивость и масштабируемость
• Высокая производительность поисковых
серверов
• Гибкое индексирование
• Возможность сбора дополнительной
информации перед индексацией
• Возможность анализа готового индекса
5
7. Что нас не устроило в Solr
• Solr:
– сервер использует только один процессор
– репликация индексов на bash-скриптах
– http - это дорого и медленно
– сложно модифицировать
• Но Lucene нас устраивает, поэтому пишем
свой сервер
6
8. Архитектура
Presentation
Query
Event
Result
Result
Search processing system Read Services
Update/Notify
Query
Read
Results
Index Replication Indexer + DB
7
9. Требования к поисковой системе
• Отказоустойчивость
• Использование социального графа
• Эффективность
• Простое изменение и расширение
функциональности
• Сбор статистики по пользователям
• Высокая пропускная способность
8
10. Как работает поисковая система
Get session for Schema
Schedule queries
Execute queries
waitAll ()
waitFor (queries complete)
waitAtLeast (result items)
Reduce results
Load results
9
11. Проблемы: работа с индексом
• Lucene активно читает файлы во время поиска
• Пробовали:
– Диск с FSDirectory и NIODirectory
– RamDrive с FSDirectory и NIODirectory
– Lucene RamDirectory
– Собственный UnsafeDirectory
• Победил:
– HeapDirectоry файлы как byte[] в хипе
10
12. Проблемы: ThreadLocal кэши
• Долгий GC из-за уймы мелких объектов в хипе
• Причины:
– Lucene использует ThreadLocal кэши для
некоторых объектов
– Jboss Remoting на каждое соединение содает
поток, а их тысячи
• Первое решение:
– Пул для выполнения запросов
• Второе решение:
– Делая другую оптимизацию, убрали эти кэши
11
13. Проблемы: медленные хранимые поля
• Медленная работа с хранимыми полями
• Причина:
– При считывании хранимого поля создается много
мусора и производятся ненужные операции
• Решение:
– Считывать значение в нужный тип сразу из byte[]
• Результат:
– На порядок быстрее стали операции с хранимыми
полями
– Время GC упало в 2 раза
12
14. Распознавание полей
• Поиск пользователей идет по следующим полям:
имя и фамилия, город, страна, интервал возростов
• Друга можно искать, вводя известные данные:
«илья широков 30»
«илья широков москва»
«илья широков 25-30 россия»
Query Line
User Term Term Search
Index Collector Dict. System
Fields Query
13
15. Поиск по возрасту
• Стандартные решения:
– Добавление всех подходящих терминов
– Префиксные термины для снижения количества
терминов в запросе
– Запрос к FieldCache
– Фильтр результатов
• Наше решение:
– Возраст хранится ввиде даты: yyyymmdd
– Запрос по текстовым полям оборачивается в
фильтрующий запрос, который проверяет отбраные
документы по хранимому полю
14
16. Поиск музыки
• В базе есть:
– артисты; альбомы; композиции
– не сортированые музыкальные композиции
• Три точности совпадения:
точное; все слова из запроса; некоторые слова из запроса
• Поиск всегда идет по всем видам документов
• От точности совпадения зависит поведение UI
• На место в выдаче влияет рейтинг документа
• С индекса собираются всевозможные топы
15
17. Индексация музыки
• Все храним в одном индексе
• У каждого документа:
– в id зашит его тип (артист; альбом; композиция; файл)
– тип как отдельное поле
– рейтинг как параметр индексации
– рейтинг как хранимое поле
• Текстовые поля:
– по отдельности
– необходимые комбинации
– 2 представления текста: оригинал + фонетика
16
18. Поиск музыки
• Пробовали:
– Отдельный запросы для каждого типа
– Повторные запросы с меньшей точностью
– Настройка оценщика веса для результата
• Решение:
– Запрос состоит из комбинаций: точность + поле данных
– Для каждой комбинации есть интервал значений весов
– Вес из подзапроса нормализуется в интервал
комбинации
– Если документ отвечает запросу, сразу вычисляем его
тип и добавляем в соответствующий коллектор
17
Хотелось находить, несмотря на опечатки, с учетом истории, и ранжировать не по айдишке
НедавноSQLперестал искать по именам даже в админке
Инвертированый индекс - это индексная структура, которая хранит не отдельные поля документов, а данные из этих полей: слова, цифры и т.д. Через такую структуру можно быстро находить документы, содержащие необходимые слова, все или часть из них.
Эти требования были выработаны на основании нашего опыта и моделирования необходимого функционала
Такая схема обеспечивает лучшую стабильностьи возможности оптимизации, но нет возможности сделать NRTГлавным конкурентом такой схемы является препроцессор, которые готовит данный и рассылает их на ПС. Появляется рассинхронизация, двойная работа на ПС, негде анализировать индексы.Реплицируем необходимые фаилы ввиде byte[]
Мы знаем о пользователях гораздо больше, чем обычная поисковая система, и мы стараемся этим пользоваться. Эффективность – из-за отсутствия схем всегда собирается полный граф, может быть меньше вызовов на подготовке результатовПроблемы первой версии с бобром и лосёмЭто требования для системы которой одновременно пользуется более 70.000 человек.
Схема описывает, какие данные из соц графа (более 30 видов) нужны для запросаСейчас 5 схем и 4 вида результатов, будет большеИндексы не храняться т.к. Проще пересобирать их при необходимости нежели пытаться апдейтить 100.000.000 индивидуальных индексовКэширование результатов было, но отказались – проще когда надо повторить запрос. Такой же опыт у твиттераМгновенный поиск запускали одновременно с гуглом
ВLinux очень эффективное кэширование, но тут оно не сработалоВыделеные сервера для выполнения запросов позволили выжать максимум из них
Данные проблемы следствие универсальности Lucene, но нам нужна эффективностьПотребовалось переписать несколько ключевых классовСнизило время GCв 2 раза для обычных поисков и в разы ускорило поиск музыки, схоже с тем что будет в 4ой Lucene
Поиск должен быть не только быстрым но и удобнымБыли моменты когда бал только детальный и только строка – оба варианта вызывали недовольствоСборка словаря встроена как конфигурируемая фича и делается автоматическиТак же через отдельный словарик сделаный с SQL данных находим странуНераспознанные слова считаются именамиПроблемы с «Иван Ростов»Сделать как то иначе мешает черезчур большой размер словаряВ словарь попадают только слова с определенной частотой
RangeQuery даже не пробовалиFieldCacheработающий в LinkedIn не подошел из-за того что у нас боьшие партицииМеханизм фильтрации Lucene тоже не работает для таких больших индексов
Как Luceneотбирает документы:Документ должен отвечать булевой логике запросаТочность соответствия вычисляется с использованием Векторной модели (vector space model) – получается вес результата
Для каждого подзапроса есть база, размер интервала и ожидаемое максимальное значение.Музыка работает так медленно т.к. требования сильно изменились к моменту запуска. При новых требованиях хранение 4 видов документов в одном индексе создает большие проблемы.
Микропоиски:ДрузейИгры и приложенияПодарочкиПомощьГородаCPU 15-30%С поиска сообществ случайно сняли более 3000 в секунду без нагрузки на серверЧто дал переход на Lucene для поиска пользователей:Вместо установки еще минимум 16 серверов с дорогущим MS SQL мы поставили 13 серверов с Linux и Java (могли обойтись 8ю)Время поиска упало до десятков милисекундПолучили обработку опечаток, выдачу с учетом точности совпадения, поиск по девечий фамилии и старым именам и городамЗатраты : 5 месяцев одного программиста, без знания как устроен портал и поисковые системыМикропоиски работают на своем движке, но скорее всего скоро смигряем на Lucene