⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Introducing Buddy: the PHP sidecar for Manticore Search

Manticore Buddy — это PHP‑основанный сайдкар и компаньон Manticore Search, который ускоряет и упрощает разработку. В мире, где разработка на C++ может быть медленной, Manticore Buddy позволяет разработчикам быстро создавать и внедрять функции.

Благодаря языку PHP и его огромному сообществу, Manticore Buddy обеспечивает большую гибкость и удобство использования. Кроме того, с последней версией 8+ PHP стал быстрее, чем когда-либо, что делает его идеальным выбором для разработчиков, желающих ускорить свои рабочие процессы.

C++ vs. PHP: выбор правильного языка для ваших нужд

Когда речь идет о создании высокопроизводительного программного обеспечения, C++ часто является предпочтительным языком. Однако процесс разработки может быть длительным и сложным, что заставляет многих разработчиков искать альтернативные варианты, повышающие продуктивность. Одним из таких популярных языков является PHP, известный своей удобностью и быстрой работой.

В Manticore Search у нас была похожая проблема — необходимость часто выпускать обновления, одновременно поддерживая высокую производительность. Чтобы решить её, мы разработали Buddy — сайдкар‑приложение, использующее PHP для реализации функций, не требующих максимальной производительности.

В конечном счете выбор между C++ и PHP зависит от потребностей вашего проекта. Если приоритетом является высочайшая производительность, лучше выбрать C++. С другой стороны, если вы предпочитаете более быструю разработку и простоту использования, PHP может быть более разумным выбором.

В заключение, выбор правильного языка для вашего проекта имеет решающее значение. Важно взвесить такие факторы, как производительность, время разработки и простота использования, прежде чем принимать решение. Поиск оптимального баланса между ними приведет к успешному и эффективному проекту.

Преимущества использования Manticore Buddy

Manticore Buddy — мощный инструмент для разработки Manticore Search, предоставляющий несколько преимуществ для оптимизации процесса разработки. Ниже перечислены основные выгоды от использования Manticore Buddy:

  • Ускорение процесса разработки: интуитивные интерфейсы Buddy и PHP позволяют быстро и без усилий создавать эффективные функции и расширения, экономя время и оптимизируя рабочий процесс.
  • Бесшовная интеграция с PHP‑пакетами: Manticore Buddy написан на PHP, что облегчает интеграцию с другими PHP‑библиотеками. Разработчики могут использовать любой PHP‑пакет, сокращая время разработки и делая инструмент полезным и универсальным. Как один из самых популярных языков, PHP является ценным ресурсом для разработчиков.
  • Повышенная доступность для разработчиков любого уровня: понятная документация и удобный интерфейс делают Buddy доступным для всех уровней навыков. Это может привести к расширению круга участников разработки Manticore Search, повышая гибкость и открывая возможности для будущих улучшений.
  • Выпуск дополнительных функций без обновления C++‑кода: Buddy позволяет нам делать мощные вещи: выпускать улучшения, расширения и даже новые функции без прохождения длительного чек‑листа реализации на C++. Вместо этого мы можем делать это быстро и надёжно с помощью PHP.

Manticore Buddy — бесценный ресурс для любой команды разработчиков, использующей Manticore Search и желающей расширять его самостоятельно. Его интуитивный интерфейс, возможность использовать любые PHP‑пакеты и доступность для разработчиков всех уровней делают его универсальным инструментом для улучшения процесса разработки Manticore Search и предоставления гибкости для удовлетворения особых требований.

Как работает Manticore Buddy

Все это звучит замечательно, но вы, вероятно, задаётесь вопросом, как мы заставили Manticore Search и Buddy работать вместе? Мы реализовали внутренний протокол, позволяющий Manticore Search и Buddy взаимодействовать друг с другом. Процесс очень простой и понятный. Чтобы добавить что‑то в Buddy и расширить его функциональность, вам даже не нужно знать протокол, так как мы уже проделали всю сложную работу, сделав его лёгким для построения поверх него.

Рассмотрим запрос SHOW QUERIES в качестве примера:

  • Manticore Search получает запрос. Если в C++‑коде нет обработчика для него или запрос вызывает ошибку, обычно он возвращает её пользователю. Однако теперь Manticore Search просит Buddy попытаться обработать запрос сначала.
  • Затем Manticore Search отправляет запрос в Buddy, используя внутренний протокол коммуникации на основе JSON, и ждёт ответа.
  • Buddy обрабатывает запрос асинхронно и параллельно с помощью ReactPHP, обеспечивая неблокирующую работу. По завершении он возвращает результат в Manticore Search.
  • В конце ответ от Buddy (независимо от его корректности) проксируется клиенту вместе с результатами, предоставленными Buddy. Готово. Просто, верно?

Процесс настолько прост и мощен, что вы можете расширять и обрабатывать пользовательские запросы, просто реализуя их на PHP в Buddy.

Что уже умеет Manticore Buddy

Manticore Buddy был разработан для поддержки широкого спектра функций, как крупных, так и мелких, для Manticore Search. Последняя версия, Manticore 6.0.0, включает набор этих возможностей!

Мы стремились определить самые критические функции для включения в начальную версию. Среди них — auto-schema , автоматически создающий таблицу на основе первого полученного документа, команда SQL BACKUP для простого резервного копирования таблиц и команда SHOW QUERIES для отображения текущих выполняющихся запросов.

Поддерживаются многопоточность и неблокирующая обработка, используя расширение PHP Parallel для выполнения запросов в отдельных потоках. Если Manticore Buddy неожиданно остановится, Manticore Search обнаружит это и автоматически перезапустит его.

Хочу попробовать! Подскажите, как установить?

Установка Manticore Buddy проста и понятна. Пакет "manticore-buddy" является зависимостью пакета "manticore" и автоматически устанавливается при установке Manticore Search.

Однако для корректной работы Manticore Buddy требуются PHP и набор модулей. Чтобы упростить этот процесс, мы разработали Manticore Executor, специализированную версию PHP, которая поставляется с предкомпилированными всеми необходимыми модулями.

Вам просто нужно установить пакеты "manticore" и "manticore-extra", чтобы запустить Manticore Search, Manticore Buddy и Manticore Executor. Не переживайте, Manticore Executor устанавливается в отдельный путь, что гарантирует отсутствие конфликтов с вашими текущими установками PHP.

Что дальше?

Вам интересно, какие возможности Buddy может нам принести? Мы безусловно в восторге! У нас есть несколько предстоящих функций, которые уже завершены и готовы к выпуску. Благодаря удобству PHP и Manticore Buddy мы можем легко предоставить эти функции. Вот небольшой спойлер того, что будет:

  • mysqldump — теперь проще, чем когда-либо, выгружать схему или данные с помощью общедоступного инструмента для MySQL, используя mysqldump.
  • MySQL-подобный table rendering с CLI — интерфейс командной строки Manticore HTTP. Да, просто отправьте HTTP‑запрос к эндпоинту /cli и получите отрендеренный ответ, который сильно напоминает клиент MySQL в терминале.
  • Pluggable архитектура. Представьте, что вы можете создать плагин для Buddy всего в несколько кликов и несколькими строками кода. Вы даже можете опубликовать его в маркете и просматривать существующие плагины, чтобы удовлетворить свои потребности. Звучит невероятно, не правда ли?

Вы уже можете протестировать некоторые из этих функций, используя нашу версию Buddy для разработки. Просто перейдите в раздел dev installation , чтобы узнать, как установить её на вашу операционную систему.

Заключение

Manticore Search — это поисковый движок с открытым исходным кодом, который набирает популярность в последние годы. Он разработан для удовлетворения широкого спектра поисковых потребностей и используется в различных приложениях, от интернет‑магазинов до онлайн‑рынков. Успех любого проекта с открытым кодом во многом зависит от вклада разработчиков, и Manticore Search не исключение. Именно здесь Manticore Buddy выходит на сцену, чтобы помочь нам быстрее выпускать и развивать наш продукт для сообщества.

Manticore Buddy — мощный и гибкий поисковый помощник, созданный для ускорения разработки новых функций и расширения возможностей Manticore Search. Его удобный интерфейс, понятная документация и огромный сообщество делают его идеальным выбором для любого PHP‑разработчика, желающего ускорить свой рабочий процесс.

Как разработчик, если вы хотите раскрыть весь потенциал Manticore Search, вам стоит изучить и внести свой вклад в Buddy. Это упростит вашу работу и позволит быстрее выпускать продукты без необходимости изменять код на C++. Представьте, вы можете добавить пользовательские функции для вашего случая, просто написав PHP‑плагин. Мощно! 🙂


Хотите узнать, с какими проблемами мы столкнулись и как их решали? Прочитайте нашу следующую статью — Manticore Buddy: challenges and solutions

Установить Manticore Search

Установить Manticore Search