Изменения документа Elastic Search
Редактировал(а) Alexandr Fokin 2024/01/08 19:48
<
>
отредактировано Alexandr Fokin
на 2022/08/14 15:26
на 2022/08/14 15:26
отредактировано Alexandr Fokin
на 2022/10/19 18:01
на 2022/10/19 18:01
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 1 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,7 +1,7 @@ 1 1 ==== ElasticSearch ==== 2 2 3 3 NoSql база данных для хранения документов. Одно из основных функций - возможность выполнения полнотекстового поиска по документа. 4 -В качестве интерфейса взаимодействия выступает HTTP Api. 4 +В качестве интерфейса взаимодействия выступает [[HTTP 1.1>>Сети.Протоколы.HTTP 1\.1.WebHome]] Api. 5 5 Написан на [[Java>>Разработка.JVM.Java.WebHome]], механизм поискового движка основан на библиотеки [[Apache Lucene>>Разработка.JVM.Java.Библиотеки.Apache Lucene.WebHome]], для логирования используется [[Apache Log4j>>doc:Разработка.JVM.Java.Библиотеки.Apache Log4j.WebHome]]. 6 6 7 7 ---- ... ... @@ -19,11 +19,13 @@ 19 19 ))) 20 20 |(% style="width:364px" %)Маппинг ~| Mapping|(% style="width:1158px" %)((( 21 21 Содержащий информацию о структуре всех документов внутри Типа. 22 -Для каждого поля в документах типа определяется его тип данных, которые влияет на то, как поле будет использоваться с точки зрения поиска. При этом пытаясь автоматически определить тип данных. 22 +Для каждого поля в документах типа определяется его тип данных, которые влияет на то, как поле будет использоваться с точки зрения поиска. При этом пытаясь автоматически определить тип данных на основе содержимого. 23 23 24 24 В случае добавления нового документа с полем, сведений о котором нет в маппинге, метаданные о поле автоматически заносяться в маппинг. 25 25 Добавление документа, содержащего поле с типом данных, отличным от метаданных в маппинге, приведет к ошибке. 26 26 27 +Если Маппинг дополняется, то это не затрагивает уже проиндексированные документы, а касается, только тех, которые будут добавлены после. 28 + 27 27 Не рекомендуется иметь несколько Типов в едином Индексе, у которых в Маппинге имеются поля с одинаковыми названиями, но разными типами данных. 28 28 ))) 29 29 |(% style="width:364px" %)Документ|(% style="width:1158px" %)((( ... ... @@ -32,14 +32,16 @@ 32 32 33 33 Поля: 34 34 35 -| | 36 -|Id|DocumentId может генерироваться как клиентом, так и сервером. 37 -|_source|Оригинальный загруженный документ 38 -|_all|Конкатенация всех свойств документа (используется, когда при поиске не указаны конкретные поля) (через Маппинг можно явно исключить определенные поля документа) 39 -|_timestamp|Временная отметка 40 -|_ttl|Временная задержка, после которой документ будет автоматически удален 41 -|_version|Версия документа для механизма оптимистичных блокировок. 42 -| | 37 +(% style="width:829px" %) 38 +|(% style="width:97px" %) |(% style="width:729px" %) 39 +|(% style="width:97px" %)Id|(% style="width:729px" %)DocumentId может генерироваться как клиентом, так и сервером. 40 +|(% style="width:97px" %)_source|(% style="width:729px" %)Оригинальный загруженный документ 41 +|(% style="width:97px" %)_all|(% style="width:729px" %)Конкатенация всех свойств документа (используется, если при поиске не указаны конкретные поля) 42 +(через Маппинг можно явно исключить определенные поля документа) 43 +|(% style="width:97px" %)_timestamp|(% style="width:729px" %)Временная отметка 44 +|(% style="width:97px" %)_ttl|(% style="width:729px" %)Временная задержка, после которой документ будет автоматически удален 45 +|(% style="width:97px" %)_version|(% style="width:729px" %)Версия документа для механизма оптимистичных блокировок. 46 +|(% style="width:97px" %) |(% style="width:729px" %) 43 43 ))) 44 44 |(% style="width:364px" %) |(% style="width:1158px" %) 45 45 |(% style="width:364px" %)Операция добавления (индексирования) документа.|(% style="width:1158px" %)((( ... ... @@ -48,10 +48,11 @@ 48 48 После завершения запроса на добавления документа, его содержимое может быть не доступно для поиска т.к. индексация новых документов выполняется сервером ElasticSearch периодически, через заданный промежуток времени (частота задается через параметр Индекса). 49 49 ))) 50 50 |(% style="width:364px" %)Операция обновления документа.|(% style="width:1158px" %)((( 51 -|Загрузка новой версии документа, полностью затирая предыдущий. 52 -|Upsert обновить или создать, если не существует. 53 -|Обновление существующего документа с использованием констант. 54 -|Обновление существующего документа с использованием данных из текущего документа и скриптов на [[Apache Groovy>>Разработка.JVM.Apache Groovy.WebHome]]. 55 +(% style="width:836px" %) 56 +|(% style="width:833px" %)Загрузка новой версии документа, полностью затирая предыдущий. 57 +|(% style="width:833px" %)Upsert обновить или создать, если не существует. 58 +|(% style="width:833px" %)Обновление существующего документа с использованием констант. 59 +|(% style="width:833px" %)Обновление существующего документа с использованием данных из текущего документа и скриптов на [[Apache Groovy>>Разработка.JVM.Apache Groovy.WebHome]]. 55 55 56 56 Можно использовать поле _version для обработки параллелизма. 57 57 ))) ... ... @@ -59,13 +59,19 @@ 59 59 |(% style="width:364px" %)Операция получения документа по DocumentId.|(% style="width:1158px" %)В отличии от операции поиска, в которой документ может быть не доступен сразу же, запрашивать документ по DocumentId можно сразу после добавления. 60 60 Является дешевой операций т.к. не требует выполнения поиска. 61 61 |(% style="width:364px" %)Операция удаления.|(% style="width:1158px" %)((( 62 -|Удаление Индекса|Быстрая операция, реализуется физическим удалением файлов. 63 -|Закрытие Индекса|Позволяет выгрузить и не использовать индекс, без физического удаления. Позже он может быть загружен. 64 -|Удаление Типа|Удаление Типа, его маппинг, все вложенные документы. 65 -|Удаление одного/группы документов|Документы не удаляются сразу, а помечаются на удаление (само удаление будет выполнено в фоне), перестают выдаваться в поисковой выдаче. 67 +(% style="width:1117px" %) 68 +|(% style="width:197px" %)Удаление Индекса|(% style="width:919px" %)Быстрая операция, реализуется физическим удалением файлов. Можно указать несколько в одном запросе. 69 +|(% style="width:197px" %)Закрытие Индекса|(% style="width:919px" %)Позволяет выгрузить и не использовать индекс, без физического удаления. Позже он может быть загружен. 70 +|(% style="width:197px" %)Удаление Типа|(% style="width:919px" %)Удаление Типа, его маппинг, всех вложенные документы. 71 +|(% style="width:197px" %)Удаление одного/группы документов|(% style="width:919px" %)((( 72 +Документы не удаляются сразу, а помечаются на удаление (само удаление будет выполнено в фоне), перестают выдаваться в поисковой выдаче. 66 66 Можно выполнить удаление на основе списка DocumentId или на основе поискового запроса, который отберет документы для удаления. 74 +Также, как и поисковый запрос, может затрагивать документы из нескольких Типов и даже нескольких Индексов. 75 + 67 67 Можно использовать поле _version для обработки параллелизма. 77 +База еще некоторое время удерживает сочетание DocumentId + version, и не позволит обратиться к меньшей версии. 68 68 ))) 79 +))) 69 69 |(% style="width:364px" %) |(% style="width:1158px" %) 70 70 |(% style="width:364px" %)Механизм масштабирования и отказоустойчивости.|(% style="width:1158px" %)((( 71 71 Несколько узлов объединяются в кластер. Клиентские приложения могут взаимодействовать с любой из нод кластера.
- XWiki.XWikiComments[2]
-
- Автор
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.cccc1808 - Комментарий
-
... ... @@ -1,0 +1,5 @@ 1 +Сценарий использования: 2 + 3 +Создание Индексов отвечающих за определенный промежуток времени. 4 +Через время N1 индексы выгружаются и хранятся по необходимости. 5 +Через время N2 индексы удаляются. - Дата
-
... ... @@ -1,0 +1,1 @@ 1 +2022-08-14 12:32:40.929