Elastic Search - Компоненты 

Page / - Изменено Alexandr Fokin в 2022/11/11 21:25 

Компоненты 
Изменено Alexandr Fokin
в 2022/11/11 21:25

Оглавление

Индекс | Index	Содержит группу Типов.
Упрощенно аналог БД.	
Тип | Type	Содержит группу Документов и метаданные Маппинг.
Упрощенно - аналог таблицы.
Предполагает группировку документов с единой структурой.	
Маппинг | Mapping	Содержащий информацию о структуре всех документов внутри Типа.
Для каждого поля в документах типа определяется его тип данных, которые влияет на то, как поле будет использоваться с точки зрения поиска. При этом пытаясь автоматически определить тип данных на основе содержимого.
В случае добавления нового документа с полем, сведений о котором нет в маппинге, метаданные о поле автоматически заносяться в маппинг.
Добавление документа, содержащего поле с типом данных, отличным от метаданных в маппинге, приведет к ошибке.
Если Маппинг дополняется, то это не затрагивает уже проиндексированные документы, а касается, только тех, которые будут добавлены после.
Не рекомендуется иметь несколько Типов в едином Индексе, у которых в Маппинге имеются поля с одинаковыми названиями, но разными типами данных.	
Документ	Принадлежит 1 типу.
Уникально определяется совокупностью идентификаторов <IndexName>.<TypeName>.<DocumentId>.
Поля:
 	 	
Id	DocumentId может генерироваться как клиентом, так и сервером.	
_source	Оригинальный загруженный документ	
_all	Конкатенация всех свойств документа (используется, если при поиске не указаны конкретные поля)
(через Маппинг можно явно исключить определенные поля документа)	
_timestamp	Временная отметка	
_ttl	Временная задержка, после которой документ будет автоматически удален	
_version	Версия документа для механизма Оптимистичная блокировка.	

 	 	
Операция добавления (индексирования) документа.	При добавлении для документа определяется шард для размещения. Сначала документ отправляется на Master экземпляр шарда, а от него также распространяется на Slave реплики шарда.
После завершения запроса на добавления документа, его содержимое может быть не доступно для поиска т.к. индексация новых документов выполняется сервером ElasticSearch периодически, через заданный промежуток времени (частота задается через параметр Индекса).	
Операция обновления документа.	Загрузка новой версии документа, полностью затирая предыдущий.	
Upsert обновить или создать, если не существует.	
Обновление существующего документа с использованием констант.	
 	
Можно использовать поле _version для обработки параллелизма.