Как отдавать из elastic обрезанные большие поля string на клиент?

Добрый день, подскажите пожалуйста.
Как отдавать обрезанные большие поля string при запросе данных из ES, чтобы не поднимать все данные поля на клиент при листовом запросе без highlight?
Можно укладывать в соседнее поле при заливке данных уже обрезанные string, но считаю это не оптимально.
Делаю запрос:
GET /_search
{
"query": {
"match_all": {}
}
}

Не оптимально с какой точки зрения?

Добрый день, с точки зрения что будут храниться частично дубли информации

Это я понимаю. Но мы уже храним дубли информации, например, в индексе и вас это не беспокоит. Когда мы говорим об оптимизации и оптимальных решениях - мы подразумеваем оптимизацию по какому-то критерию. То есть, если мы хотим быстрый поиск то дупликация в форме индекса, нас не волнует. Если нас волнует только размер хранимых данных - то лучше было бы забросить elasticsearch, записать все в файл и прогнать его через 7-Zip или RAR, не правда ли?

Решить проблему с подстроками можно многими способами - скриптом во время запроса, дублем в source, дублем как stored field и т.д. Все эти решения оптимальны с одной точки зрения и не оптимальны с другой. Поэтому, я и пытаюсь понять какую практическую проблему вы пытаетесь решить. .... или это просто теоретические рассуждения, и мы теряем время/деньги на которые можно было бы купить дополнительные диски, чтобы хранить эти дубли? :slight_smile:

1 Like

Спасибо.
Приняли решение при получение данных с elastic обрезать данные на стороне сервера приложений.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.