我正在尝试向elasticsearch添加一个新字段-称为“dateAdded”,该字段也将用于对数据进行排序。不确定如何使用nodejs。
我在看这里吗?
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html
我只看到一个使用curl的示例,如何使用带有此模块的nodejs-https://github.com/elastic/elasticsearch-js
这是我最初建立索引的方式:
esclient.index({
index: 'projects',
type: 'project',
id: projectIdStr,
body: {
"title": proj.title,
"company": proj.company,
"tags": proj.tagsArray,
"defaultPicId": proj.defaultPicId
}
},function(err,resp,status) {
if(err) { console.log(err);} else {
//stored
}
});
最佳答案
答案将根据您的Elasticsearch集群设置方式而有所不同。
如果您具有默认设置,则将启用动态映射。如果是这种情况,那么添加新字段就像索引带有该字段的文档一样简单,elasticsearch将推断出适合的映射并将该字段添加到该类型的映射中。
https://www.elastic.co/guide/en/elasticsearch/guide/current/dynamic-mapping.html
如果关闭了动态映射,则只需要对类型执行PUT映射命令
PUT indexname/_mapping/mytype
{
"properties": {
"dateAdded": {
"type": "date",
"format": "dateOptionalTime"
}
}
}
看看这个:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
因此,请记住,如果您设置了动态映射,则只需使用更新API,它将为您制定新的映射。
https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-update
关于javascript - 如何向ElasticSearch添加新字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41009290/