Files
elastiq/src/helpers/create_index.js

44 lines
1.2 KiB
JavaScript

import { defaultSettings } from './constants';
const schema = {
jobtype: { type: 'string', index: 'not_analyzed' },
payload: { type: 'object', enabled: false },
priority: { type: 'byte' },
timeout: { type: 'long' },
process_expiration: { type: 'date' },
created_by: { type: 'string', index: 'not_analyzed' },
created_at: { type: 'date' },
started_at: { type: 'date' },
completed_at: { type: 'date' },
attempts: { type: 'short' },
max_attempts: { type: 'short' },
status: { type: 'string', index: 'not_analyzed' },
output: {
type: 'object',
properties: {
content_type: { type: 'string', index: 'not_analyzed' },
content: { type: 'object', enabled: false }
}
}
};
export default function createIndex(client, indexName, doctype = defaultSettings.DEFAULT_SETTING_DOCTYPE) {
const indexBody = { mappings : {} };
indexBody.mappings[doctype] = { properties: schema };
return client.indices.exists({
index: indexName,
})
.then((exists) => {
if (!exists) {
return client.indices.create({
ignore: 400,
index: indexName,
body: indexBody
})
.then(() => true);
}
return exists;
});
}