8.7.8. Таблиці Manticore Search
Важливі моменти:
- Тип створюваних таблиць завжди Real-time (RT).
- У таблицях RT дані відразу потрапляють в індекс. Для додавання нових даних використовуйте запит
INSERT INTO, для зміни існуючих —REPLACE INTO.
Дані для пошуку зберігаються у вигляді таблиць. Кожен рядок таблиці містить поле з унікальним ID та додаткові поля, за якими виконується пошук. Усі створені таблиці відображаються в розділі «Manticore Search» на вкладці «Таблиці»:
Створення
- Натисніть «Створити таблицю».
- Вкажіть назву таблиці, поля, налаштування морфології, індексу, токенізатора та збережіть зміни:

- «Поля» — налаштування полів (назва, тип, модель зберігання).
- Поле «id» є первинним ключем, тому модель зберігання для нього вибирати не потрібно (при збереженні вона буде очищена).
- Модель зберігання «indexed» створює повнотекстовий індекс з можливістю повнотекстового пошуку, але оригінальний текст при цьому не зберігається. Для збереження вихідного документа з можливістю повнотекстового пошуку використовуйте «indexed stored».
- Модель зберігання «stored» (інша назва — «row-wise») використовується за замовчуванням. Якщо явно вказати «columnar», то замість «stored» буде використовуватися «columnar». Порівняння моделей зберігання див. в офіційній документації.
- «Морфологія» — налаштування index_exact_words і морфології для різних мов (lemmatize, stem), підключення словників.
- «Індекс» — налаштування html_strip, expand_keywords, min_word_len, min_prefix_len, min_infix_len.
- «Токенізатор» — налаштування charset_table, ignore_chars, Blend chars, Blend mode.
Керування
Перегляд. Виконання запиту на перегляд вмісту таблиці.
Перейменувати (тільки для таблиць RT). Перейменування таблиці.
Autocomplete. Перевірка роботи автодоповнення.
Ключові слова. Перевірка роботи токенізатора.
Структура (тільки для таблиць RT). Налаштування полів, морфології, підключення словників, налаштування індексу та токенізатора (як при створенні).
Клонувати (тільки для таблиць RT). Створення копії таблиці.
Імпорт. Налаштування запиту на імпорт даних у таблицю (вибір джерела даних, SQL-запит), розклад запуску та кнопка примусового запуску.
Info. Перегляд інформації про таблицю:
- «Статус» та «Статистика» — дані з результату запиту
SHOW TABLE table STATUS. - «Структура» (тільки для таблиць RT) — запит на створення таблиці з такою самою структурою.
- «Індекси» (тільки для таблиць RT) — дані з результату запиту
SHOW TABLE table INDEXES.
Очистити (тільки для таблиць RT). Очищення вмісту таблиці (підтверджується кнопкою).
Видалити (тільки для таблиць RT). Видалення таблиці (підтверджується кнопкою).
Додатково виводиться:
- Кількість проіндексованих документів (рядків у таблиці).
- Розмір індексу на диску.
- Обсяг зайнятої оперативної пам'яті.
Внизу виводиться список полів і поточні налаштування таблиці.
Робота з таблицями
Підключення
Примітки:
- Рекомендуємо використовувати інтерфейс MySQL — він має звичний синтаксис і великі можливості завдяки підтримці сесій (наприклад, можна встановити флаг
SET profiling = 1, потім у тому ж з'єднанні виконати запит і отримати статистику). - Якщо для інстансу увімкнені обмеження доступу, для підключення з хостингу в дозволені має бути доданий прямий IPv4 хостинг-акаунта.
Підключення з консолі через MySQL (у команді використовуйте свої дані, порт вказується без пробілу після -P):
mysql -h example.manticore.tools -P10000
Підключення та надсилання SQL-запиту з консолі через cURL:
curl https://example.manticore.tools/cli -d "SHOW TABLES"
Запити
Створення таблиці (тип даних буде підбиратися автоматично):
CREATE TABLE TABLE_NAME;
Створення таблиці з ручним зазначенням структури (рекомендується, оскільки в автоматичному режимі типи даних не завжди можуть підбиратися коректно):
CREATE TABLE TABLE_NAME (name text, in_stock INT, price FLOAT, properties json);
Копіювання структури таблиці:
CREATE TABLE table_name2 LIKE table_name1;
Перегляд списку таблиць:
SHOW TABLES;
Перегляд структури таблиці:
DESC TABLE_NAME;
Вставка даних у таблицю (якщо таблиця не існує, вона буде створена автоматично):
INSERT INTO TABLE_NAME (name, in_stock, price, properties) VALUES ('nice bag', 177, 1.15, '{"color": "red"}');
Вибірка даних з таблиці:
SELECT * FROM TABLE_NAME;
Зміна даних у таблиці:
REPLACE INTO TABLE_NAME SET name='other nice bag', in_stock=123 WHERE id = id_number;
Видалення таблиці:
DROP TABLE IF EXISTS TABLE_NAME;