blog-post

Поддержка PHPStorm для Manticore Search

Manticore предлагает ограниченную поддержку для PHPStorm. В этой статье я изложу основные шаги по настройке IDE для работы с Manticore. Я использую версию IDE 2023.2.4; поддержка может отсутствовать в более ранних или более поздних версиях.

Инициализация

  1. Запустите Manticore Search. Например, давайте используем Docker:
docker run -p 9306:9306 --name manticore --rm -d manticoresearch/manticore:dev-6.2.13-cbf9350
  1. Теперь нам нужно настроить источник данных. Для этого мы будем использовать драйвер MySQL, который поддерживает Manticore Search. Откройте плагин Database -> New -> Data Source -> MySQL и заполните поля Port и Authentication, как показано ниже:
    Fill data source
  2. Нажмите кнопку Test Connection, чтобы убедиться, что источник настроен правильно.
    Check Connection
  3. После сохранения конфигурации вкладка базы данных будет отображать интерфейс для работы с Manticore Search.
    Database after source configuration

Использование Manticore Search в PHPStorm

Создание таблиц

Для создания таблиц предпочтительно использовать консоль Ctrl+Shift+F10

create table products(title text, price float) morphology='stem_en';

Если вы решите использовать пользовательский интерфейс, уберите из команды создания таблицы базу данных Manticore.products, оставив только products.

INSERT

Чтобы вставить данные в Manticore через PHPStorm, вы можете использовать консоль и пользовательский интерфейс:

Консоль

insert into products(title, price) values ('Crossbody Bag with Tassel', 19.85), ('microfiber sheet set', 19.99), ('Pet Hair Remover Glove', 7.99);

# 3 rows affected in 18 ms

Пользовательский интерфейс

Установите значение id равным 0 вместо значения по умолчанию null, если вы хотите, чтобы id был сгенерирован автоматически.
Insert via ui

Открыв таблицу, вы сможете увидеть данные, которые только что были добавлены.
Inserted data example.png

SELECT

Лучше использовать консоль для SELECT-запросов, так как SQL-запрос MATCH() имеет другой формат в MySQL, и пользовательский интерфейс считает его ошибочным.

select * from products where match('pet')

Select with match operator

UPDATE

Обновления должны выполняться только в консоли.

update products set price=18.5 where id = 8217058505249521668;

# 1 row affected in 12 ms

DELETE

Удаления могут выполняться только через консоль.

delete from products where id = 8217058505249521668;

# 1 row affected in 12 ms

PQ

Поддержка перколируемых запросов также реализована только на уровне консоли.

  1. Создайте таблицу pq
CREATE TABLE pq_table(title text, color string) type='pq';
  1. Заполните данными
INSERT INTO pq_table(query) values('@title bag');
INSERT INTO pq_table(query,filters) values('@title shoes', 'color=\'red\'');
INSERT INTO pq_table(query,filters) values('@title shoes', 'color in (\'blue\', \'green\')');
select * from pq_table;

PQ select

  1. Выполните команду CALL PQ
CALL PQ('pq_table', 'What a nice bag', 0 as docs_json);

Call PQ

Заключение

В заключение, интеграция Manticore Search с PHPStorm, особенно версии 2023.2.4, является прямолинейным, но нюансированным процессом. Важно помнить, что Manticore Search, хотя и доступен через MySQL IDE, такие как PHPStorm, не является MySQL. Эта разница накладывает определенные ограничения на взаимодействие IDE с Manticore Search.

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

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