Функцията, която се опитвам да изпълня, е да създам показател в kibana, който показва броя на "невалидирани" потребители. Изпращам дневник, изпратен, когато потребител се регистрира, след това дневник, когато потребител е валидиран.
Така че броят, който искам, е разликата между броя на регистрираните и броя на валидираните.
В kibana не мога да направя такава математическа операция, така че намерих заобиколно решение: добавих „скриптирано поле“, наречено „невалидирано“, което е равно на 1, когато потребител се регистрира, и -1, когато потребител валидира своя акаунт. Сумата от полето „невалидирани“ трябва да бъде броят на невалидирани потребители.
Това е скриптът, който дефинирах в моето скриптово поле:
doc['ctxt_code'].value == 1 ? 1 : doc['ctxt_code'].value == 2 ? -1 : 0
с:
ctxt_code 1 като регистър на регистъра
ctxt_code 2 като валидиран регистрационен файл
Тази настройка работи добре, когато всичките ми регистрационни файлове имат „ctxt_code“, но когато се избута регистрационен файл без това поле, kibana извежда следната грешка:
Field [ctxt_code] used in expression does not exist in mappings
Не мога да разбера тази грешка, защото kibana казва:
If a field is sparse (only some documents contain a value), documents missing the field will have a value of 0
което е случаят.
Някой има ли представа?
ctxt_code
съществува в съпоставянията на всички ваши logstash индекси? Виждам в горния десен ъгъл на екранната снимка, че работите върху последните седем дни, можете ли да се уверите, че индексите на logstash от последните седем дни имат това полеctxt_code
в създаденото картографиране? - person Val   schedule 25.05.2016