2017-01-29 2 views
1

Мы используем ES2.3. Каким будет рекомендуемое отображение/тип для хранения JSON в полях? Кроме того, какова максимальная рекомендуемая длина этих полей? Нам не нужно поле, которое нужно проанализировать, и оно никогда не станет частью запроса. Поле будет просто проиндексировано, а затем возвращено, когда какое-либо другое поле в документе соответствует поиску.Как хранить большие строки JSON в elasticsearch?

Поле может быть довольно большим, так как оно будет содержать массив объектов JSON, определяющих подмножество пользовательских данных, которое содержит имя, адрес электронной почты и приветствие. Эффективно поле будет содержать результат упражнений на таргетинг против множества пользователей, тогда поле будет использоваться для управления процессом электронной почты, который отправляет электронное письмо этим пользователям. Это может привести к от 10 до 100 тысяч пользователей для отправки по электронной почте.

Если бы у нас было некоторое представление о максимальной длине поля, мы могли бы определить, сколько документов нам нужно разделить на результат таргетинга.

Мы действительно не хотим использовать документ для каждого пользователя, так как это быстро выйдет из-под контроля с точки зрения масштаба.

Любые идеи были бы очень признательны.

+0

«Поле просто будет индексироваться», так как вам не нужно искать на нем, вы имеете в виду «хранятся и не индексируется», верно? – Val

+0

Да, мы не хотим искать или анализировать поле, просто нужно вернуть его содержимое в результате поиска в других областях документа. – InTooDeep

+0

Лично я бы просто отобразил это поле в виде строкового поля с индексом «index»: «no» ' – Val

ответ

1

вы можете индексировать его с отображением типа (source):

"json_field": { 
    "type": "string", 
    "index": "no" 

Весь документ будет сохранен, но это поле не будет проиндексированы - поэтому он не будет доступен для поиска и вон Не испортите свой индекс. Мы также применяли это для статической информации, такой как гиперссылки к деталям-страницам или изображениям продукта.

В соответствии с этим thread вам также не придется сталкиваться с максимальной длиной поля. Тем не менее вам нужно знать максимальный размер кучи Java (source) при хранении больших документов.

Я надеюсь, что это решает ваш вопрос! Поскольку это мой первый ответ на stackoverflow, ваши отзывы будут высоко оценены!

Приветствия, Dominik

+0

Большое спасибо! – InTooDeep

2

Я предлагаю сохранить и не проиндексировать поле, задав строку типа.

+1

Большое спасибо! – InTooDeep

Смежные вопросы