Эффективное увеличение производительности Elasticsearch
Я столкнулся с проблемой с максимальным размером для одного поля / термина.
Я установил свои поля в "not_analyzed". Как вы знаете, это означает: "Индексируйте это поле, чтобы оно было доступно для поиска, но индексируйте значение точно так, как указано. Не анализируйте его". и максимальный размер отдельного члена в базовом индексе Lucene составляет 32766 байт.
Когда я пытаюсь отправить более 32766 байт моему методу asticsearch, это ограничение срабатывает и не принимает (например) строку 40000 символов. После моих исследований, я думаю, у меня есть 2 варианта;
1-) Продолжайте использовать поле с "not_analyzed", но используйте настройку ignore_above, как показано ниже. При этом теперь он будет принимать более 32766 байт, но это не сделает это поле доступным для поиска (если оно не должно быть доступно для поиска).
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"status_code": {
"type": "string",
"index": "not_analyzed",
"ignore_above": 32766
}
}
}
}
}
2-) Помечает индекс с помощью опции "нет", как показано ниже. Он примет более 32766 байт, но не сделает поле доступным для поиска или запроса.
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"status_code": {
"type": "string",
"index": "no"
}
}
}
}
}
Мои вопросы
Могут ли эти параметры повлиять на процессор или память на мой кластер?
- Есть ли у вас какие-либо другие предложения для этой области?
Спасибо за ответ.
ОБНОВЛЕНИЕ: я использую 1.5.2, так что это означает, что я не могу использовать ignore_above.