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


(MegaClicker) #1

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


(Igor Motov) #2

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


(MegaClicker) #3

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


(Igor Motov) #4

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

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


(MegaClicker) #5

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


(system) #6

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