![](/img/trans.png)
[英]How remove an element in all documents of an index in elasticsearch?
[英]How to remove all documents of type from elasticsearch index version 2.2
我正在尝试使用nodejs客户端进行弹性搜索来删除特定类型的所有文档。
我有以下代码:
var deleteType = function (type, done) {
client().indices.delete({
"index": settings.index,
"type": type,
"ignore": [404]
}, function (error, response) {
if (error) {
logger.error(error, 'Failed to delete index type');
done(error);
} else {
logger.debug({"res": response}, "deleted %s index", type);
done();
}
});
};
类型和索引参数很好。 但是它似乎正在删除整个索引,而不仅仅是该类型的文档。 我猜想我用indices.delete
进行了错误的API调用。
什么是删除索引中特定“类型”的所有文档的正确方法?
在2.0版之前,您可以使用Delete Mapping作为Indices API的一部分来删除索引中的类型。
允许删除映射(类型)及其数据。 REST端点是
[删除] / {index} / {type}
[删除] / {索引} / {类型} / _映射
[删除] / {index} / _ mapping / {type}
从2.0版开始,Elasticsearch不再直接支持此功能。 该文档解释如下:
不再可能删除类型的映射。 相反,您应该删除索引并使用新的映射重新创建它。
但是,“ 按查询删除”插件可提供此功能。
“按查询删除”插件增加了对删除与指定查询匹配的所有文档(从一个或多个索引)的支持。 它替代了有问题的按查询删除功能,该功能已从Elasticsearch核心中删除。
只需构造一个查询,该查询将过滤要删除的索引中的类型,并将其用作“按查询删除”的基础。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.