Исходный код вики Компоненты

Редактировал(а) Alexandr Fokin 2023/12/16 14:11

Скрыть последних авторов
Alexandr Fokin 1.2 1 |(% style="width:249px" %)Индекс ~| Index|(% style="width:1233px" %)Содержит группу Типов.
Alexandr Fokin 1.1 2 Упрощенно аналог БД.
Alexandr Fokin 1.2 3 |(% style="width:249px" %)Тип ~| Type|(% style="width:1233px" %)(((
Alexandr Fokin 1.1 4 Содержит группу Документов и метаданные Маппинг.
5 Упрощенно - аналог таблицы.
6
7 Предполагает группировку документов с единой структурой.
8 )))
Alexandr Fokin 1.2 9 |(% style="width:249px" %)Маппинг ~| Mapping|(% style="width:1233px" %)(((
Alexandr Fokin 1.1 10 Содержащий информацию о структуре всех документов внутри Типа.
11 Для каждого поля в документах типа определяется его тип данных, которые влияет на то, как поле будет использоваться с точки зрения поиска. При этом пытаясь автоматически определить тип данных на основе содержимого.
12
13 В случае добавления нового документа с полем, сведений о котором нет в маппинге, метаданные о поле автоматически заносяться в маппинг.
14 Добавление документа, содержащего поле с типом данных, отличным от метаданных в маппинге, приведет к ошибке.
15
16 Если Маппинг дополняется, то это не затрагивает уже проиндексированные документы, а касается, только тех, которые будут добавлены после.
17
18 Не рекомендуется иметь несколько Типов в едином Индексе, у которых в Маппинге имеются поля с одинаковыми названиями, но разными типами данных.
19 )))
Alexandr Fokin 1.2 20 |(% style="width:249px" %)Документ|(% style="width:1233px" %)(((
Alexandr Fokin 1.6 21 Принадлежит 1 типу.
Alexandr Fokin 1.1 22 Уникально определяется совокупностью идентификаторов <IndexName>.<TypeName>.<DocumentId>.
23
24 Поля:
25
26 | |
27 |Id|DocumentId может генерироваться как клиентом, так и сервером.
28 |_source|Оригинальный загруженный документ
29 |_all|Конкатенация всех свойств документа (используется, если при поиске не указаны конкретные поля)
30 (через Маппинг можно явно исключить определенные поля документа)
31 |_timestamp|Временная отметка
32 |_ttl|Временная задержка, после которой документ будет автоматически удален
Alexandr Fokin 1.5 33 |_version|Версия документа для механизма [[Оптимистичная блокировка>>doc:Архитектура и модели.Блокировки.Оптимистичная блокировка.WebHome]].
Alexandr Fokin 1.1 34 | |
35 )))
Alexandr Fokin 1.2 36 |(% style="width:249px" %) |(% style="width:1233px" %)
37 |(% style="width:249px" %)Операция добавления (индексирования) документа.|(% style="width:1233px" %)(((
Alexandr Fokin 1.1 38 При добавлении для документа определяется шард для размещения. Сначала документ отправляется на Master экземпляр шарда, а от него также распространяется на Slave реплики шарда.
39
40 После завершения запроса на добавления документа, его содержимое может быть не доступно для поиска т.к. индексация новых документов выполняется сервером ElasticSearch периодически, через заданный промежуток времени (частота задается через параметр Индекса).
41 )))
Alexandr Fokin 1.2 42 |(% style="width:249px" %)Операция обновления документа.|(% style="width:1233px" %)(((
Alexandr Fokin 1.1 43 |Загрузка новой версии документа, полностью затирая предыдущий.
44 |Upsert обновить или создать, если не существует.
45 |Обновление существующего документа с использованием констант.
46 |
47
48 Можно использовать поле _version для обработки параллелизма.
49 )))
Alexandr Fokin 1.2 50 |(% style="width:249px" %) |(% style="width:1233px" %)
Alexandr Fokin 1.1 51
52