从 logstash/elasticsearch 中删除某种类型的记录
Delete records of a certain type from logstash/elasticsearch
我即将着手将大量记录导入 elasticsearch(通过 logstash)。
我确定我会犯一些错误。因此,我希望能够轻松地从 elasticsearch 中删除导入的记录。
现在,我可以删除包含导入的索引。这只有效,因为我在同一天没有任何其他数据。
以后很想在elasticsearch中查询某种类型的所有记录,然后删除。
在这种情况下,记录类型将为 "nbu_job"
您可以使用 delete by query API 来实现。
例如,以下命令将删除索引 your_index
中类型为 nbu_job
的所有文档:
curl -XDELETE 'http://localhost:9200/your_index/_query?q=_type:nbu_job'
如果你需要验证上面的命令要删除什么,我建议你先运行查询,这样你就可以看到与这个命令匹配的是什么(注意_query
端点变为 _search
!)
curl -XGET 'http://localhost:9200/your_index/_search?q=_type:nbu_job'
请注意,如果您这样做,nbu_job
的映射将仍然存在。因此,如果您发现映射中出现错误,您可能希望使用
完全删除 nbu_job
类型
curl -XDELETE 'http://localhost:9200/your_index/nbu_job'
当然,your_index
是您需要处理的任何索引名称,它也可以是 alias, a comma-separated list of indices(例如 logstash-2015.06.11,logstash-2015.06.12
),索引通配符(例如 logstash-*
)
我即将着手将大量记录导入 elasticsearch(通过 logstash)。
我确定我会犯一些错误。因此,我希望能够轻松地从 elasticsearch 中删除导入的记录。
现在,我可以删除包含导入的索引。这只有效,因为我在同一天没有任何其他数据。
以后很想在elasticsearch中查询某种类型的所有记录,然后删除。
在这种情况下,记录类型将为 "nbu_job"
您可以使用 delete by query API 来实现。
例如,以下命令将删除索引 your_index
中类型为 nbu_job
的所有文档:
curl -XDELETE 'http://localhost:9200/your_index/_query?q=_type:nbu_job'
如果你需要验证上面的命令要删除什么,我建议你先运行查询,这样你就可以看到与这个命令匹配的是什么(注意_query
端点变为 _search
!)
curl -XGET 'http://localhost:9200/your_index/_search?q=_type:nbu_job'
请注意,如果您这样做,nbu_job
的映射将仍然存在。因此,如果您发现映射中出现错误,您可能希望使用
nbu_job
类型
curl -XDELETE 'http://localhost:9200/your_index/nbu_job'
当然,your_index
是您需要处理的任何索引名称,它也可以是 alias, a comma-separated list of indices(例如 logstash-2015.06.11,logstash-2015.06.12
),索引通配符(例如 logstash-*
)