mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Add support to ElasticSearch 5.0
This commit is contained in:
@@ -24,6 +24,7 @@ export class ElasticConfigCtrl {
|
||||
esVersions = [
|
||||
{name: '1.x', value: 1},
|
||||
{name: '2.x', value: 2},
|
||||
{name: '5.x', value: 5},
|
||||
];
|
||||
|
||||
indexPatternTypeChanged() {
|
||||
|
||||
@@ -182,7 +182,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
luceneQuery = luceneQuery.substr(1, luceneQuery.length - 2);
|
||||
esQuery = esQuery.replace("$lucene_query", luceneQuery);
|
||||
|
||||
var searchType = queryObj.size === 0 ? 'count' : 'query_then_fetch';
|
||||
var searchType = (queryObj.size === 0 && this.esVersion < 5) ? 'count' : 'query_then_fetch';
|
||||
var header = this.getQueryHeader(searchType, options.range.from, options.range.to);
|
||||
payload += header + '\n';
|
||||
|
||||
@@ -243,7 +243,8 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
|
||||
this.getTerms = function(queryDef) {
|
||||
var range = timeSrv.timeRange();
|
||||
var header = this.getQueryHeader('count', range.from, range.to);
|
||||
var searchType = this.esVersion >= 5 ? 'query_then_fetch' : 'count' ;
|
||||
var header = this.getQueryHeader(searchType, range.from, range.to);
|
||||
var esQuery = angular.toJson(this.queryBuilder.getTermsQuery(queryDef));
|
||||
|
||||
esQuery = esQuery.replace("$lucene_query", queryDef.query || '*');
|
||||
@@ -251,7 +252,7 @@ function (angular, _, moment, kbn, ElasticQueryBuilder, IndexPattern, ElasticRes
|
||||
esQuery = esQuery.replace(/\$timeTo/g, range.to.valueOf());
|
||||
esQuery = header + '\n' + esQuery + '\n';
|
||||
|
||||
return this._post('/_msearch?search_type=count', esQuery).then(function(res) {
|
||||
return this._post('/_msearch?search_type=' + searchType, esQuery).then(function(res) {
|
||||
var buckets = res.responses[0].aggregations["1"].buckets;
|
||||
return _.map(buckets, function(bucket) {
|
||||
return {text: bucket.key, value: bucket.key};
|
||||
|
||||
@@ -75,6 +75,14 @@ function (queryDef) {
|
||||
|
||||
for (var i = 0; i < aggDef.settings.filters.length; i++) {
|
||||
var query = aggDef.settings.filters[i].query;
|
||||
if (this.esVersion >= 5) {
|
||||
filterObj[query] = {
|
||||
query_string: {
|
||||
query: query,
|
||||
analyze_wildcard: true
|
||||
}
|
||||
};
|
||||
} else {
|
||||
filterObj[query] = {
|
||||
query: {
|
||||
query_string: {
|
||||
@@ -84,6 +92,7 @@ function (queryDef) {
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return filterObj;
|
||||
};
|
||||
@@ -106,7 +115,25 @@ function (queryDef) {
|
||||
target.timeField = this.timeField;
|
||||
|
||||
var i, nestedAggs, metric;
|
||||
var query = {
|
||||
var query = {};
|
||||
if (this.esVersion >= 5) {
|
||||
query = {
|
||||
"size": 0,
|
||||
"query": {
|
||||
"bool": {
|
||||
"must": [
|
||||
{"range": this.getRangeFilter()},
|
||||
{"query_string": {
|
||||
"analyze_wildcard": true,
|
||||
"query": '$lucene_query'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
query = {
|
||||
"size": 0,
|
||||
"query": {
|
||||
"filtered": {
|
||||
@@ -124,6 +151,7 @@ function (queryDef) {
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// handle document query
|
||||
if (target.bucketAggs.length === 0) {
|
||||
@@ -199,7 +227,25 @@ function (queryDef) {
|
||||
};
|
||||
|
||||
ElasticQueryBuilder.prototype.getTermsQuery = function(queryDef) {
|
||||
var query = {
|
||||
var query = {};
|
||||
if (this.esVersion >= 5) {
|
||||
query = {
|
||||
"size": 0,
|
||||
"query": {
|
||||
"bool": {
|
||||
"must": [
|
||||
{"range": this.getRangeFilter()},
|
||||
{"query_string": {
|
||||
"analyze_wildcard": true,
|
||||
"query": '$lucene_query'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
};
|
||||
} else {
|
||||
query = {
|
||||
"size": 0,
|
||||
"query": {
|
||||
"filtered": {
|
||||
@@ -217,6 +263,7 @@ function (queryDef) {
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
query.aggs = {
|
||||
"1": {
|
||||
"terms": {
|
||||
|
||||
Reference in New Issue
Block a user