我想从ElasticSearch中删除数据。我已经删除了索引。然而,这似乎并没有真正删除数据本身。我看到的其他东西指向通过查询删除功能。然而,我甚至不知道该问什么。我知道指数。本质上,我想知道如何做a
DELETE FROM [Index]
从邮递员在Chrome。然而,我没有任何运气。似乎无论我做什么,数据都不会消失。到目前为止,我已经成功地删除索引使用DELETE HTTP动词在邮差和使用一个url:
http://localhost:9200/[indexName]
然而,这似乎并没有真正删除数据(又名文档)本身。
你可以试试这个卷发:
curl --location --request DELETE 'http://<username>:<password>@<url>:9200/<index name>/<doc type>/<document id>
或者如果你不想在URL上设置用户名和密码,那么也可以尝试这个curl:
curl --location --request DELETE 'http://<url>:9200/<index name>/<doc type>/<document id>' --header 'Authorization: Basic <Base64 encoded username:password>'
执行后,响应体将包含一个结果字段。如果该字段的值被删除,则意味着文档删除成功。
在这个curl中,我假设您已经将您的elastic配置为使用http。如果您正在使用https,只需将协议更改为https。
假设我需要删除索引filebeat-7.6.2-2020.04.30-000001,我使用curl delete选项执行它(curl -X delete "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty"),并导致如下所示的身份验证问题;
{
"error" : {
"type" : "security_exception",
"reason" : "missing authentication credentials for REST request [/filebeat-7.6.2-2020.04.30-000001?pretty]"
},
"status" : 401
}
在这里,您应该使用为Elasticsearch提供的用户名和密码对curl请求进行身份验证。然后试着
curl -X DELETE -u myelasticuser:myelasticpassword "localhost:9200/filebeat-7.6.2-2020.04.30-000001?漂亮”
将导致{
“acknowledge”:正确
}。
删除索引将同时删除映射和类型。可以通过以下查询删除所有行
curl -XDELETE 'localhost:9200/twitter/tweet/_query?pretty' -d'
{
"query": {
"match_all":
}
}'
然而,对于上述查询,您需要安装Elasticsearch的2.0.0-beta1删除查询删除插件
Install delete-by-query plugin
sudo bin/plugin install delete-by-query
更多的
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
我正在使用Kibana作为查看和搜索弹性搜索数据的工具,基于良好的用户体验,我推荐它。
以下查询将有助于从弹性搜索中删除数据
情况1:如果你知道数据行的id:
DELETE /index_name/_doc/{id}
案例2:根据列值进行删除:
假设我有一个名为abc的列。
现在我必须得到_id字段基于column_name最终删除该行。
GET /uts_checkout_configurations/_search { "query" : { "constant_score" : { "filter" : { "bool": { "must": {"exists": {"field": "ABC"}} } } } } }
最后,您将获得_id作为其中一个字段的数据。
根据-删除
DELETE /index_name/_doc/{_id}