diff --git a/x-pack/plugins/ml/public/jobs/new_job/simple/recognize/create_job/create_job_controller.js b/x-pack/plugins/ml/public/jobs/new_job/simple/recognize/create_job/create_job_controller.js index 401240638a69..cf29ea5a4802 100644 --- a/x-pack/plugins/ml/public/jobs/new_job/simple/recognize/create_job/create_job_controller.js +++ b/x-pack/plugins/ml/public/jobs/new_job/simple/recognize/create_job/create_job_controller.js @@ -122,7 +122,8 @@ module query, filters: [], useFullIndexData: true, - startDatafeedAfterSave: true + startDatafeedAfterSave: true, + useDedicatedIndex: false, }; $scope.resultsUrl = ''; @@ -250,10 +251,11 @@ module const prefix = $scope.formConfig.jobLabel; const indexPatternName = $scope.formConfig.indexPattern.title; const groups = $scope.formConfig.jobGroups; + const useDedicatedIndex = $scope.formConfig.useDedicatedIndex; const tempQuery = (savedSearch.id === undefined) ? undefined : combinedQuery; - ml.setupDataRecognizerConfig({ moduleId, prefix, groups, query: tempQuery, indexPatternName }) + ml.setupDataRecognizerConfig({ moduleId, prefix, groups, query: tempQuery, indexPatternName, useDedicatedIndex }) .then((resp) => { if (resp.jobs) { $scope.formConfig.jobs.forEach((job) => { diff --git a/x-pack/plugins/ml/public/services/ml_api_service/index.js b/x-pack/plugins/ml/public/services/ml_api_service/index.js index b43b3a0b31c3..43100238f9d7 100644 --- a/x-pack/plugins/ml/public/services/ml_api_service/index.js +++ b/x-pack/plugins/ml/public/services/ml_api_service/index.js @@ -258,7 +258,8 @@ export const ml = { 'prefix', 'groups', 'indexPatternName', - 'query' + 'query', + 'useDedicatedIndex' ]); return http({ diff --git a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.js b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.js index 06d5f8081659..34f4daddba65 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.js +++ b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.js @@ -197,6 +197,7 @@ export class DataRecognizer { groups, indexPatternName, query, + useDedicatedIndex, startDatafeed, start, end, @@ -234,6 +235,11 @@ export class DataRecognizer { // update groups list for each job moduleConfig.jobs.forEach(job => job.config.groups = groups); } + + // Set the results_index_name property for each job if useDedicatedIndex is true + if (useDedicatedIndex === true) { + moduleConfig.jobs.forEach(job => job.config.results_index_name = job.id); + } saveResults.jobs = await this.saveJobs(moduleConfig.jobs); } @@ -361,7 +367,7 @@ export class DataRecognizer { // save the savedObjects if they do not exist already async saveKibanaObjects(objectExistResults) { - let results = []; + let results = { saved_objects: [] }; const filteredSavedObjects = objectExistResults.filter(o => o.exists === false).map(o => o.savedObject); if (filteredSavedObjects.length) { results = await this.savedObjectsClient.bulkCreate(filteredSavedObjects); diff --git a/x-pack/plugins/ml/server/routes/modules.js b/x-pack/plugins/ml/server/routes/modules.js index 94c6e5919e4d..0bac2adc69a0 100644 --- a/x-pack/plugins/ml/server/routes/modules.js +++ b/x-pack/plugins/ml/server/routes/modules.js @@ -28,6 +28,7 @@ function saveModuleItems( groups, indexPatternName, query, + useDedicatedIndex, startDatafeed, start, end, @@ -40,6 +41,7 @@ function saveModuleItems( groups, indexPatternName, query, + useDedicatedIndex, startDatafeed, start, end, @@ -88,6 +90,7 @@ export function dataRecognizer(server, commonRouteConfig) { groups, indexPatternName, query, + useDedicatedIndex, startDatafeed, start, end @@ -100,6 +103,7 @@ export function dataRecognizer(server, commonRouteConfig) { groups, indexPatternName, query, + useDedicatedIndex, startDatafeed, start, end,