我想从ElasticSearch中删除数据。我已经删除了索引。然而,这似乎并没有真正删除数据本身。我看到的其他东西指向通过查询删除功能。然而,我甚至不知道该问什么。我知道指数。本质上,我想知道如何做a

DELETE FROM [Index]

从邮递员在Chrome。然而,我没有任何运气。似乎无论我做什么,数据都不会消失。到目前为止,我已经成功地删除索引使用DELETE HTTP动词在邮差和使用一个url:

   http://localhost:9200/[indexName]

然而,这似乎并没有真正删除数据(又名文档)本身。


当前回答

你也可以使用chrome扩展elasticsearch-head删除索引

其他回答

你也可以在'elasticsearch head' (Chrome插件)中使用delete操作删除索引。将它添加到你的chrome浏览器并连接到你的主机。在那里,你会发现所有的索引,如果你点击下面的动作按钮,你想删除的索引,你会发现一个删除选项下拉。点击它,并在弹出框中输入DELETE。您的索引将被删除。'Elasticsearch head'扩展是一个查看和管理索引和数据的简单方法。

我正在使用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}

你也可以使用chrome扩展elasticsearch-head删除索引

把指数列出来 curl -L localhost:9200/_cat/ indexes

9200默认端口[如果使用其他端口则更改端口]

您可能会发现所有索引都以logstash-yyyy-mm-dd格式开头(logstash-*)

你可以看到所有的索引和使用

使用以下命令删除索引和数据触发器。

curl -XDELETE localhost:9200/index_name(这将同时删除数据和索引)。

您可以删除一个或多个索引,这实际上是从磁盘删除它们的文件。例如:

curl -XDELETE localhost:9200/$INDEXNAME

其中$INDEXNAME可以是索引名(例如users_v2), N个用逗号分隔的索引(例如users_v2,users_v3)。索引模式(例如users_*)或_all也可以,除非它在配置中通过action.destructive_requires_name: true被阻止。

删除单个文档是可能的,但这不会立即清除它们。删除只是一种软删除,在段合并过程中真正删除文档。在这个演讲中,你会发现很多关于分段和合并的细节。它是关于Solr的,但是合并来自Lucene,所以你在Elasticsearch中有相同的选项。

回到API,你可以通过ID删除单个文档(如果你使用路由索引,则提供路由值):

curl -XDELETE localhost:9200/users_v2/_doc/user1

或通过查询:

curl -XPOST -H 'Content-Type: application/json' localhost:9200/users_v2/_delete_by_query -d '{
  "query": {
    "match": {
      "description_field": "bad user"
    }
  }
}'