# Прочитайте это сначала

## О данном руководстве

Руководство организовано так, чтобы отразить наиболее вероятный способ использования Manticore:

* начиная с основной информации о нем и о том, как установить и подключиться
* основные вещи, такие как добавление документов и запуск поисков
* советы по оптимизации производительности, хитрости и расширение Manticore с помощью плагинов и пользовательских функций

##### Не пропускайте 1️⃣ 2️⃣ 3️⃣  
Ключевые разделы руководства отмечены 1️⃣, 2️⃣, 3️⃣ и т.д. в меню для вашего удобства, поскольку соответствующий функционал используется чаще всего. Если вы новичок в Manticore, **мы настоятельно рекомендуем их не пропускать**.

##### Руководство по быстрому старту  
Если вы хотите быстро понять, как в целом работает Manticore, [⚡ Руководство по быстрому старту](Quick_start_guide.md) — хорошее место для начала.

##### Использование примеров  
Каждый пример запроса имеет небольшой значок 📋 в правом верхнем углу:

![Скопировать пример](copy_example.png)

Вы можете использовать его для копирования примеров в буфер обмена. **Если запрос является HTTP-запросом, он будет скопирован как команда CURL**. Вы можете настроить хост/порт, нажав ⚙️.

##### Поиск по этому руководству

Мы любим поиск и сделали всё возможное, чтобы сделать поиск в этом руководстве максимально удобным. Конечно, он работает на базе Manticore Search. Помимо использования строки поиска, которая требует предварительного открытия руководства, есть очень простой способ найти что-то — просто открыв **mnt.cr/your-search-keyword**:

![быстрый поиск по руководству mnt.cr](mnt.cr.gif)

## Лучшие практики  
Есть несколько вещей, которые вам нужно понять о Manticore Search, чтобы следовать лучшим практикам его использования.

#### Таблица реального времени против простой таблицы  
* **[Таблица реального времени](Creating_a_table/Local_tables/Real-time_table.md)** позволяет добавлять, обновлять и удалять документы с немедленным применением изменений.  
* **[Простая таблица](Creating_a_table/Local_tables/Plain_table.md)** — это, в основном, неизменяемая структура данных и базовый элемент, используемый таблицами реального времени. Простая таблица хранит набор документов, их общий словарь и настройки индексации. Одна таблица реального времени может состоять из нескольких простых таблиц (чанков), но **помимо этого Manticore предоставляет прямой доступ к построению простых таблиц** с помощью инструмента [indexer](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md#Indexer-tool). Это имеет смысл, когда ваши данные в основном неизменяемы, и поэтому вам не нужна таблица реального времени.

#### Режим реального времени против простого режима  
Manticore Search работает в двух режимах:  
* **Режим реального времени** (RT режим). Это режим по умолчанию, который позволяет управлять вашей схемой данных **императивно**:  
  * позволяет управлять схемой данных онлайн с помощью SQL-команд `CREATE`/`ALTER`/`DROP TABLE` и их аналогов в клиентах без SQL  
  * в конфигурационном файле необходимо определить только настройки, связанные с сервером, включая [data_dir](Server_settings/Searchd.md#data_dir)  
* **Простой режим** позволяет определять схемы данных в конфигурационном файле, то есть обеспечивает **декларативное** управление схемами. Это актуально в трёх случаях:  
  * когда вы работаете только с простыми таблицами  
  * или когда ваша схема данных очень стабильна и вам не нужна репликация (которая доступна только в RT режиме)  
  * когда вам нужно сделать схему данных портируемой (например, для упрощения развертывания на новом сервере)  

Вы не можете комбинировать два режима и должны выбрать один, указав [data_dir](Server_settings/Searchd.md#data_dir) в вашем конфигурационном файле (что является поведением по умолчанию). Если вы не уверены, **мы рекомендуем использовать RT режим**, так как даже если вам нужна простая таблица, вы можете [построить](Data_creation_and_modification/Adding_data_from_external_storages/Plain_tables_creation.md) её с помощью отдельной конфигурации простой таблицы и [импортировать](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Importing_table.md) в ваш основной экземпляр Manticore.

Таблицы реального времени можно использовать как в RT, так и в простом режиме. В RT режиме таблица реального времени определяется командой `CREATE TABLE`, а в простом режиме она определяется в конфигурационном файле. Простые (офлайн) таблицы поддерживаются только в простом режиме. Простые таблицы не могут создаваться в RT режиме, но существующие простые таблицы, созданные в простом режиме, могут быть [конвертированы](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Attaching_one_table_to_another.md) в таблицы реального времени и [импортированы](Data_creation_and_modification/Adding_data_from_external_storages/Adding_data_to_tables/Importing_table.md) в RT режиме.

#### SQL против JSON  
Manticore предоставляет несколько способов и интерфейсов для управления схемами и данными, но два основных из них:  
* **SQL**. Это родной язык Manticore, который обеспечивает весь функционал Manticore. **Лучшей практикой является использование SQL для**:  
  * управления схемами и выполнения других DBA-операций, так как это самый простой способ сделать это  
  * проектирования запросов, так как SQL гораздо ближе к естественному языку, чем JSON DSL, что важно при разработке чего-то нового. Вы можете использовать Manticore SQL через любой MySQL клиент или [/sql](Connecting_to_the_server/MySQL_protocol.md).  
* **JSON**. Большая часть функционала также доступна через JSON предметно-ориентированный язык. Это особенно полезно при интеграции Manticore с вашим приложением, так как с JSON это можно делать более программно, чем с SQL. Лучшей практикой является **сначала изучить, как сделать что-то через SQL, а затем использовать JSON для интеграции этого в ваше приложение.**

<!-- proofread -->

