Node.js 使用节点js在Elasticsearch 7.3.2中创建自定义映射类型
当我使用kibana进行自定义映射时,它工作正常,但当我在我的节点程序中执行相同的操作时,它会显示mapper解析异常。 原因:根映射定义具有不受支持的参数:标记(自定义映射名称) 因为在kibana中,我可以使用include_type_name=true,但在我的节点程序中它不可用Node.js 使用节点js在Elasticsearch 7.3.2中创建自定义映射类型,node.js,
elasticsearch,Node.js,
elasticsearch,当我使用kibana进行自定义映射时,它工作正常,但当我在我的节点程序中执行相同的操作时,它会显示mapper解析异常。 原因:根映射定义具有不受支持的参数:标记(自定义映射名称) 因为在kibana中,我可以使用include_type_name=true,但在我的节点程序中它不可用 var name = req.body.templatename; var index_patterns = req.body.index_patterns; co
var name = req.body.templatename;
var index_patterns = req.body.index_patterns;
console.log(index_patterns);
const opts: IndicesPutTemplateParams = {
name: name,
body: {
index_patterns: [index_patterns],
settings: {
analysis: {
filter: {
autocomplete_filter: {
type: "edge_ngram",
min_gram: 1,
max_gram: 20
}
},
analyzer: {
autocomplete: {
type: "custom",
tokenizer: "standard",
filter: [
"lowercase",
"autocomplete_filter"
]
}
}
}
},
mappings: {
tags: {
properties: {
name: {
type: "text",
analyzer: "autocomplete",
search_analyzer: "standard"
},
normalized: {
type: "text"
},
status: {
type: "text"
},
createdat: {
type: "date"
},
updatedat: {
type: "date"
}
}
}
}
}
}
try {
esClient.indices.putTemplate(opts).then((data: any) => {
return res.json({
data
});
console.log(data);
}).catch((err: any) => {
console.log(err);
res.status(500).json({
err
})
});
} catch (error) {
res.status(500).json({
error
})
}
}```
根据需要,您需要将include_type_名称指定为
client.indices.putTemplate({
name: string,
include_type_name: boolean, --->
order: number,
create: boolean,
timeout: string,
master_timeout: string,
flat_settings: boolean,
body: object -> mapping object
})
也可以从映射中删除映射名称标记
mappings: {
tags: { ---> remove
这没用。有什么问题吗?。请详细说明当我在我的typescript文件中使用include_type_name时的显示错误,因为putmapping中没有include_type_name参数。您可以删除include type name。映射结构类似于以下映射:{properties:{}}。如果您提供的是include类型名称,那么您需要定义如下映射:{“type_name”:{“properties”:{}}。类型名只是为了向后兼容,您不需要在映射或命令中提供它