UNPKG

dobo-elasticsearch

Version:
44 lines (40 loc) 1.01 kB
async function modelCreate ({ schema, options = {} }) { const { getInfo } = this.app.dobo const { instance } = getInfo(schema) const properties = {} for (const p of schema.properties) { if (p.name === 'id') continue let type = p.type let format switch (type) { case 'smallint': type = 'short'; break case 'string': type = 'keyword'; break case 'datetime': type = 'date' format = 'date_time' break case 'date': type = 'date' format = 'date' break case 'time': type = 'date' format = 'time' break case 'timestamp': type = 'date' format = 'epoch_millis' break } properties[p.name] = { type } if (format) properties[p.name].format = format } const mappings = { properties } await instance.client.indices.create({ index: schema.name, mappings }) } export default modelCreate