From 10f9022d7c706306acbe4975d9296a981c17f845 Mon Sep 17 00:00:00 2001 From: Gregory Becker Date: Fri, 19 Sep 2014 14:03:08 +0100 Subject: [PATCH] Support fields from nested objects pulled from Elasticsearch --- .../services/elasticsearch/es-datasource.js | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/app/services/elasticsearch/es-datasource.js b/src/app/services/elasticsearch/es-datasource.js index ab03c614a83..4cc1da3843e 100644 --- a/src/app/services/elasticsearch/es-datasource.js +++ b/src/app/services/elasticsearch/es-datasource.js @@ -86,7 +86,23 @@ function (angular, _, config, kbn, moment) { var list = []; var hits = results.data.hits.hits; + var getFieldFromSource = function(source, fieldName) { + var fieldValue; + if (fieldName) { + var fieldNames = fieldName.split('.'); + fieldValue = source; + for (var i = 0; i < fieldNames.length; i++) { + fieldValue = fieldValue[fieldNames[i]]; + } + if (_.isArray(fieldValue)) { + fieldValue = fieldValue.join(','); + } + } + return fieldValue; + }; + for (var i = 0; i < hits.length; i++) { + console.log('annotationQuery', hits[i]); var source = hits[i]._source; var fields = hits[i].fields; var time = source[timeField]; @@ -98,21 +114,11 @@ function (angular, _, config, kbn, moment) { var event = { annotation: annotation, time: moment.utc(time).valueOf(), - title: source[titleField], + title: getFieldFromSource(source, titleField), + tags: getFieldFromSource(source, tagsField), + text: getFieldFromSource(source, textField) }; - if (source[tagsField]) { - if (_.isArray(source[tagsField])) { - event.tags = source[tagsField].join(', '); - } - else { - event.tags = source[tagsField]; - } - } - if (textField && source[textField]) { - event.text = source[textField]; - } - list.push(event); } return list;