Эффективное увеличение производительности 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.

0 ответов

Другие вопросы по тегам