У меня проблема с максимальным размером для одного поля / термина.
Я установил для своих полей значение "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.