@MSAFT

На каком языке программирования чаще всего пишется метапоиск?

Делаю проект для туроператора.
По своей сути напоминает чем-то aviasales, hotellook, chip.travel.
Разница только в том, что помимо порядка 130 партнеров этого туроператора есть еще свой продукт.

Мысль проста, взять цены всех партнеров по запросу пользователя и выдать ему лучшую. Если запрос пользователя есть в своем продукте - выдать свой продукт не сканируя партнеров.

Сканировать всех и сразу не имеет смысла, запрос фильтруется по критериям(откуда вылет, куда летим). По любому запросу, обычно нужно отсканировать 5-6 партнеров. Поэтому нагрузка иная, если бы сканировать надо было 130 партнеров сразу.

Думал, что обычно такие проекты целиком и полностью пишутся на одном языке. Чаще всего на PHP.
Покурив данную тему, в частности изучив немного проект aviasales, понял что сайт и его функции у них написаны на PHP, а сам метапоиск реализован на RUBY.

Касаемо PHP есть неплохая база и некоторые знания. А вот с RUBY не сталкивался ниразу.

Вертска готова полностью. Проектирование, как мне кажется, тоже. Вот часть моих мыслей касаемо самого метапоиска:
6839783b3bef47ea9bf1f3514bd0418b.png

Но остались вопросы по серверной части и по RUBY.

Вопросы:

1. Действительно ли метапоиск чаще всего реализуется на RUBY?
2. Можно ли выполнить основной функционал сайта на PHP, а сам поиск на RUBY?
3. Пришел к мысли, что под определенные функции нужны свои, отдельные БАЗЫ ДАННЫХ. Имел дело только с MySQL. Под такие высоконагруженные проекты какие БД лучше всего использовать?
4. Где подобрать грамотную команду специалистов(fl.ru ; upwork?) и как вести данный проект(Github?)? Какие решения лучшие? Что это за система управления проектом - https://www.youtube.com/watch?v=DCg-LGiWrKk (видео "Как писали aviasales")
5. Серверная часть. Наверняка под такие проекты нужно покупать свои машины. Есть ли смысл? Или есть хостинг решения под такие задачи? Насколько крутой сервер-специалист нужен для настройки всего этого дела?

Спасибо за внимание.
  • Вопрос задан
  • 1693 просмотра
Решения вопроса 1
@matios
Technical Team Lead
Купался я в этой нише.

1, 2. Поиск можно делать и на PHP
3. Базы можно и SQL. PostgreSQL вполне потянет такое. В зависимости от функционала может понадобиться MemCached, Redis
4. Мало сайтов с вакансиями?) тот же hh, например. Использоваться можно тот же GIT или SVN. Кому что удобнее
5. Не только наверняка, а 100% придется. Уровень крутости специалиста определяется поставленными вами задачами.

Вы учитывайте еще то, что если вы собираете выводить услуги партнеров, то вам их надо парсить. И вы же не будете их парсить при каждом запросе пользователя, а это значит, что вам надо сохранять эти данные где-то у себя. На примере 6-10 не скажу, но на примере >200 скажу точно, что там огромное кол-во слоев кеширования должно быть, по куче параметров. Парсер в этом случае может выступать вообще как отдельный проект. Плюс динамические фильтры с зависимыми параметрами и т.д.

Потянете конкуренцию со стороны TourIndex? :)))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
1) neo4j
2) sphinxsearch + facet

P.S. на Руби свет клином не сошелся
Ответ написан
Комментировать
eastywest
@eastywest
Backend developer
1. В Aviasales метапоиск переписали на Python/Tornado Отказоустойчивость на примере aviasales
В случае метапоиска я бы смотрел на инструменты с хорошей поддержкой concurrency, например golang.
2. Конечно можно, просто выделяете метапоиск в отдельный сервис.
3. Реляционные базы данных вполне подойдут.
4. Там используется git.
5. Сервера возьмите на digitalocean.com или его аналогах - vscale.io, flops.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы