В нашем эластичном индексе у нас есть ежедневные новостные документы, и мы используем агрегаты для этих документов. Но после двух последовательных пробегов elasticsearch возвращает недостаточно памяти. Теперь мы увеличили размер кучи для эластичности, но есть ли какое-либо решение, кроме того, увеличивая барабан для эластичности?Производительность агрегирования Elasticsearch
Свойства полей, которые используются для агрегации;
"detail_stop": {
"type": "string",
"store": true,
"analyzer": "stop_analyzer"
}
Запрос на агрегирование;
{
"from": 0,
"size": 5000,
"query": {
"bool": {
"must": [
{
"range": {
"date": {
"gte": "now-0d/d"
}
}
}
]
}
},
"aggs": {
"words": {
"terms": {
"size": 5000,
"field": detail_stop,
"min_doc_count": 3
}
}
}
}
В настоящее время мы имеем упругий кластер с 1 узлом (8core 2.5GHz, 32GB) и ES_HEAP_SIZE = 16g (упругие есть 16gb память). Как мы можем сократить использование памяти и повысить производительность?
Я знаю, что мне нужно повторно индексировать, когда я использую doc_val, но значения doc не поддерживают анализируемые поля, поэтому это не опция. Спасибо за ответ. –
Я проверил ссылку, упомянутую выше десятки раз, и уже сделал настройку о куче, пространстве процессора и т. Д. Но до сих пор не смог получить полезный результат. Я прошу других решений, если они существуют. –
Их нет. Если вы используете кеш поля, вам нужно сделать пробел в памяти кучи. – bittusarkar