2016-02-08 1 views
0

Существует levelпроанализирован поле со значениями как "INFO", "WARN", "ERROR" ...Объединить ведра с таким же именем, игнорируя регистр

Иногда значения могут быть строчными как "info". создано

Когда я делаю простые термин агрегацию в Kibana 2 ведра: одно для "INFO", а другие для "info".

Я установил флаг CASE_INSENSITIVE без каких-либо успехов.

Можно ли получить такое поведение, не касаясь лексемизацию этого поля на ElasticSearch уровне?

+0

У вас есть logstash? –

+0

Нет, мы не используем ** LogStash ** для этих журналов, они непосредственно вводятся в ES с помощью ** log4net appender ** (github.com/jptoto/log4net.ElasticSearch). – Pragmateek

+0

Очевидно, что очистка их перед тем, как положить их в elasticsearch, будет лучше. Logstash отлично подходит для этого, или, может быть, вы можете найти какой-то другой способ в вашем потоке. –

ответ

0

ОК, наконец, я нашел способ сделать это:

  1. Перейти к Kibana «Настройки» вкладке
  2. Выберите шаблон индекс для настройки
  3. Выберите поле для настроить, например level
  4. В "Формат" выберите String
  5. В "Transform" выберите Upper Case
  6. Подтвердите, нажав на Update Field кнопку

Теперь, когда я строю большинство визуализаций "INFO" и "info" считаются то же и сливаются.

Но таблицы все еще продолжают считать их отличными, даже если оба они выглядят как "INFO"!

1

Вы можете достичь этого через scripting. Хотя scripting не рекомендуется, так как он делает запрос очень медленным, но если вы хотите получить результат, не касаясь tokenization, вы можете использовать нижеприведенный запрос.

{ 
"aggs" : { 
    "group_level_ignore_case" :{ 
    "terms" : { 
     "script" : "doc['level'].value.toLowerCase()" 
    } 
    } 

    } 
} 

Надеюсь, это поможет.

+0

Спасибо за предложение. Это кажется хорошим решением, но я получаю странную ошибку «Неизвестный ключ для START_OBJECT в [2]: [aggs]». Я предполагаю, что формат не тот, который ожидается моей настройкой (** ES 4.2 ** + ** Kibana 4.4 **). – Pragmateek

+0

Как вы можете получить ES 4.4. Последняя версия эластичного поиска - ES 2.2.0, выпущенная на прошлой неделе. – Richa

+0

Я имею в виду ** ES 2.2 **, я не путешествую во времени :) – Pragmateek