Исходный код вики ElasticSearch

Версия 4.29 от Alexandr Fokin на 2022/08/12 17:19

Скрыть последних авторов
Alexandr Fokin 4.9 1 ==== ElasticSearch ====
Alexandr Fokin 2.1 2
Alexandr Fokin 4.9 3 NoSql база данных для хранения документов. Одно из основных функций - возможность выполнения полнотекстового поиска по документа.
4 В качестве интерфейса взаимодействия выступает HTTP Api.
Alexandr Fokin 4.8 5 Написан на [[Java>>Разработка.JVM.Java.WebHome]], на основе библиотеки [[Lucene>>Разработка.NET.Библиотеки.Внешняя обработка.Lucene.WebHome]].
6
Alexandr Fokin 4.5 7 ----
Alexandr Fokin 2.1 8
Alexandr Fokin 4.10 9 ==== Структурные элементы ====
Alexandr Fokin 2.1 10
Alexandr Fokin 4.9 11 |(% style="width:364px" %) |(% style="width:1158px" %)
12 |(% style="width:364px" %)Индекс ~| Index|(% style="width:1158px" %)Содержит группу Типов.
13 Упрощенно аналог БД.
Alexandr Fokin 4.13 14 |(% style="width:364px" %)Тип ~| Type|(% style="width:1158px" %)(((
15 Содержит группу Документов и метаданные Маппинг.
Alexandr Fokin 4.9 16 Упрощенно - аналог таблицы.
Alexandr Fokin 4.13 17
18 Предполагает группировку документов с единой структурой.
19 )))
20 |(% style="width:364px" %)Маппинг ~| Mapping|(% style="width:1158px" %)(((
21 Содержащий информацию о структуре всех документов внутри Типа.
Alexandr Fokin 4.15 22 Для каждого поля в документах типа определяется его тип данных, которые влияет на то, как поле будет использоваться с точки зрения поиска. При этом пытаясь автоматически определить тип данных.
Alexandr Fokin 4.13 23
24 В случае добавления нового документа с полем, сведений о котором нет в маппинге, метаданные о поле автоматически заносяться в маппинг.
Alexandr Fokin 4.18 25 Добавление документа, содержащего поле с типом данных, отличным от метаданных в маппинге, приведет к ошибке.
Alexandr Fokin 4.13 26 )))
Alexandr Fokin 4.11 27 |(% style="width:364px" %)Документ|(% style="width:1158px" %)(((
28 Принадлежит 1 группе.
Alexandr Fokin 4.12 29 Уникально определяется совокупностью идентификаторов <IndexName>.<TypeName>.<DocumentId>.
Alexandr Fokin 4.11 30 )))
31 |(% style="width:364px" %) |(% style="width:1158px" %)
Alexandr Fokin 4.29 32 |(% style="width:364px" %)Операция добавления (индексирования) документа.|(% style="width:1158px" %)При добавлении для документа определяется шард для размещения. Сначала документ отправляется на Master экземпляр шарда, а от него также распространяется на Slave копии шарда.
Alexandr Fokin 4.26 33 |(% style="width:364px" %)Операция поиска.|(% style="width:1158px" %)Может осуществляться как в рамках одного конкретного Типа, так и на уровне Типов, расположенных в различных Индексах.
34 |(% style="width:364px" %) |(% style="width:1158px" %)
Alexandr Fokin 4.20 35 |(% style="width:364px" %)Механизм масштабирования и отказоустойчивости.|(% style="width:1158px" %)(((
Alexandr Fokin 4.28 36 Несколько узлов объединяются в кластер. Клиентские приложения могут взаимодействовать с любой из нод кластера.
Alexandr Fokin 4.20 37 Поддерживается шардинг - разбиение данных на блоки и распределение их по узлам кластера.
38 Для каждого шарда можно назначать кол-во реплик, копий. При этом среди репликаций один шард будем master, а остальные slave.
Alexandr Fokin 4.21 39
Alexandr Fokin 4.22 40 Рекомендуется наличие быстрого и надежного сетевого соединения между узлами кластера. (split brain дописать позже).
Alexandr Fokin 4.23 41
Alexandr Fokin 4.27 42 Параметры кол-ва шардов и реплик определяются на уровне Индекса. Кол-во реплик можно менять в рантайм, а кол-во шардов нельзя.
Alexandr Fokin 4.24 43 1 экземпляр шарда ElasticSearch соответствует 1 экземпляру индекса Apache Lucene.
Alexandr Fokin 4.20 44 )))
Alexandr Fokin 4.25 45 |(% style="width:364px" %)Индекса Apache Lucene|(% style="width:1158px" %)Содержит оригинальные документы и (Term dictionary maps).
46 Term dictionary maps - содержит информацию о всех уникальных словах-терминах, номерах документов, в которых они расположены, а также кол-во повторений для каждого документа.
Alexandr Fokin 4.9 47
48 ----
49
50 ==== Ссылки: ====
51
Alexandr Fokin 2.1 52 The heart of the free and open Elastic Stack
53 https://www.elastic.co/elasticsearch/
54
55 Elasticsearch для .NET - разработчиков
56 https://www.youtube.com/watch?v=iQ-Cmn6hgJg
57
Alexandr Fokin 3.1 58
59 Основы Elasticsearch
60 https://habr.com/ru/post/280488/
Alexandr Fokin 4.7 61
62
63 miollek/Free-Elasticsearch-Books
64 https://github.com/miollek/Free-Elasticsearch-Books
65