GVKun编程网logo

直接删除所有Elasticsearch索引而不会卷曲(elasticsearch删除索引会删除数据吗)

15

如果您想了解直接删除所有Elasticsearch索引而不会卷曲的相关知识,那么本文是一篇不可错过的文章,我们将对elasticsearch删除索引会删除数据吗进行全面详尽的解释,并且为您提供关于5-

如果您想了解直接删除所有Elasticsearch索引而不会卷曲的相关知识,那么本文是一篇不可错过的文章,我们将对elasticsearch删除索引会删除数据吗进行全面详尽的解释,并且为您提供关于5-ElasticSearch索引备份、ElasticSearch删除所有数据、elasticsearch索引、Elasticsearch索引上次更新时间的有价值的信息。

本文目录一览:

直接删除所有Elasticsearch索引而不会卷曲(elasticsearch删除索引会删除数据吗)

直接删除所有Elasticsearch索引而不会卷曲(elasticsearch删除索引会删除数据吗)

我开始elasticsearch,并得到错误:

java.lang.IllegalStateException: unable to upgrade the mappings for the index [[documents/xOOEXQB-RzGhQp7o7NNH9w]]    at org.elasticsearch.cluster.metadata.MetaDataIndexUpgradeService.checkMappingsCompatibility(MetaDataIndexUpgradeService.java:172) ~[elasticsearch-5.5.0.jar:5.5.0]

我不确定是什么原因导致了这种情况的发生。我确实做了一个, brew upgradeelasticsearch但没有记下最新版本。我目前正在使用Elasticsearch 5.5。

我想清除所有用于Elasticsearch的映射/索引。我不需要这些数据进行测试。大多数文档说要使用

curl -XDELETE ''http://localhost:9200/_all''

但是,localhost:9200无法访问(以前是无法访问的),大概是因为无法正确启动elasticsearch,所以它有点像鸡和鸡蛋。

我有办法手动清除所有Elasticsearch数据吗?

答案1

小编典典

您可能还有一些剩余的索引与最新的ES版本不兼容,最肯定的是您之前使用过ES1.x。

您可以简单地删除$ES_HOME/data/*文件夹下的任何内容。由于您ES_HOME是通过brew安装的,因此通常位于/usr/local/Cellar/elasticsearch

5-ElasticSearch索引备份

5-ElasticSearch索引备份

1,安装Node.js

# 解压
tar -zxvf  node-v12.18.3-linux-x64.tar.xz -C /home/install
# 配置环境变量
vi /etc/profile
# 追加如下内容
export NODEJS_HOME=/home/install/node-v12.18.3-linux-x64
export NODEJS_PATH=$NODEJS_HOME/lib/node_modules
export PATH=$NODEJS_HOME/bin:$PATH
# 刷新环境变量
source /etc/profile
# 测试
npm -v
node -v

2,安装elasticdump

具体的参数细节可以参考elasticdump官网,其实也包含详细的使用细节。
  • 在线安装
npm install elasticdump -g
  • 使用离线缓存安装的方式
# 解压缓存包,是在编写当前文档的时候保存的,如果失效了,在本地再生成一份即可
tar -xvf npm-cache.tar
# 进入node下的lib目录执行安装命令
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
# 建立文件软连接到系统命令,如果elasticdump不在这个目录下,可以使用一下命令查找find / -name ''elasticdump''
ln -s /home/install/node-v12.18.3-linux-x64/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump
# 验证
elasticdump --help

3,简单使用案例

# 备份索引
elasticdump --input=http://192.168.73.156:9200/item  --output=/home/elasticsearch/bakDemo/item_mapping.json --type=mapping 
# 备份数据
elasticdump --input=http://192.168.73.156:9200/item  --output=/home/elasticsearch/bakDemo/item_data.json --type=data

# 还原索引
elasticdump --input=/home/elasticsearch/bakDemo/item_mapping.json --output=http://192.168.73.156:9200/item --type=mapping
# 还原数据
elasticdump --input=/home/elasticsearch/bakDemo/item_data.json --output=http://192.168.73.156:9200/item --type=data

4,全量备份与还原

# 创建导出的目录,需要保持为空
mkdir /home/es_backup
# 执行导出命令
# 注意"--ignoreChildError"参数:ignoreChildError allows multi-elasticdump to continue if a child throws an error.
multielasticdump \
  --direction=dump \
  --match=''^.*$'' \
  --ignoreChildError \
  --input=http://192.168.73.156:9200 \
  --output=/home/es_backup 
# 执行还原命令
# 注意:这里测试还原的版本是5.6.14,所以还是需要template的,但是本身在导出的文件中不包含template文件,所以这里使用ignoreType选项在导入的时候忽略掉
multielasticdump \
  --direction=load \
  --ignoreChildError \
  --input=/home/es_backup \
  --ignoreType=''template'' \
  --output=http://192.168.73.156:9200

ElasticSearch删除所有数据

ElasticSearch删除所有数据

如果需要删除索引中的所有数据,则无需先查询它并传输到客户端。只需使用delete by query API:

await _elasticClient.DeleteByQueryAsync<Product>(
    s => s.Query(q => q.MatchAll())
);
,

如果您要删除索引中的所有记录,那么为什么不删除索引并创建一个新索引,这样做会更快,更便宜。

有关更多信息,请参考delete index API。

elasticsearch索引

elasticsearch索引

elasticsearch索引


为了将数据添加到ES,我们需要索引,索引是一个存储关联数据的地方。实际上,索引只是一个用来指定一个或多个分片的“逻辑命名空间”,可以理解为MySQL中的一个数据库的概念。 

Elasticsearch索引上次更新时间

Elasticsearch索引上次更新时间

有没有一种方法可以从ElasticSearch中检索有关特定索引的最新更新时间的信息?我的目标是能够知道什么时候是最后一次在索引中插入/更新/删除任何文档。如果无法做到这一点,是否可以在索引修改请求中添加一些内容,以便稍后提供此信息?

答案1

小编典典

您可以从_timestamp获取修改时间

为了更轻松地返回时间戳,您可以设置Elasticsearch来存储它:

curl -XPUT "http://localhost:9200/myindex/mytype/_mapping" -d''{  "mytype": {      "_timestamp": {          "enabled": "true",          "store": "yes"      }  }}''

如果插入文档然后对其进行查询,则会得到时间戳记:

 curl -XGET ''http://localhost:9200/myindex/mytype/_search?pretty'' -d ''{>  fields : ["_timestamp"],>    "query": {>     "query_string": { "query":"*"}>    }> }''{   "took" : 7,  "timed_out" : false,  "_shards" : {    "total" : 5,    "successful" : 5,    "failed" : 0  },  "hits" : {     "total" : 1,     "max_score" : 1.0,     "hits" : [ {       "_index" : "myindex",       "_type" : "mytype",       "_id" : "1",       "_score" : 1.0,       "fields" : {        "_timestamp" : 1417599223918      }    } ]  }}

更新现有文档:

curl -XPOST "http://localhost:9200/myindex/mytype/1/_update" -d''{  "doc" : {      "field1": "data",      "field2": "more data"  },  "doc_as_upsert" : true}''

重新运行上一个查询将向我显示一个更新的时间戳:

  "fields" : {    "_timestamp" : 1417599620167  }

关于直接删除所有Elasticsearch索引而不会卷曲elasticsearch删除索引会删除数据吗的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于5-ElasticSearch索引备份、ElasticSearch删除所有数据、elasticsearch索引、Elasticsearch索引上次更新时间的相关信息,请在本站寻找。

本文标签: