启动
/bin/elasticsearch -d
停止
ps -ef|grep elasticsearch 根据进程id删除 kill -9 id
elasticsearchdump 使用
Linux导出
elasticdump --input=http://192.168.1.1:9200/indexname/ --output=test.json --searchBody '{"query":{"bool":{"filter":[{"range":{"time":{"gte":1548950400000,"lt": 1551369600000}}},{"match_phrase":{"content":"搜索匹配数据"}}]}}}' &
windows导出 --双引号需要转义
elasticdump --input=http://192.168.1.1:9200/indexname/ --output=E:\test.json --searchBody {\"query\":{\"bool\":{\"filter\":[{\"range\":{\"time\":{\"gte\":1548950400000,\"lt\":1551369600000}}},{\"match_phrase\":{\"content\":\"搜索匹配数据\"}}]}}} &
导入(linux与windows相同)
elasticdump --output=http://192.168.1.1:9200/indexname/ --input=E:\test.json --type=data
----后面这个有的版本加了报错 --headers='{"content-type": "application/json"}'
head启动
head目录: setsid /node_modules/grunt/bin/grunt server &
head配置文件
_site/app.js 配置es集群, Gruntfile.js配置head端口
head创建模板
PUT http://192.168.1.1:9200/_template/template_name
{
"template":indexName,
mapping
}
,在mapping最上边新增一行"template":indexName 即可
head删除模板
delete http://192.168.1.1:9200/_template/template_name
删除指定名称的模板 template_name为*即可删除所有模板
根据mapping创建索引
put http://192.168.1.1:9200/indexname {{mapping}}
删除索引
curl -XDELETE 'http://host.IP.address:9200/logstash-*'
或者通过head删除
http://192.168.1.1:9200/indexName DELETE
查询所有数据总数
通过head: http://192.168.1.11:9200/_cat/count?v 或者
curl -s -XGET http://192.168.1.1:9200/_cat/count?v
定时删除数据脚本
#!/bin/bash
dat="\""`date --date='15 days ago' "+%Y-%m-%d %H:%M:%S"`":000\""
dat1="\"2010-10-10 19:45:04:050\""
curl -XPOST http://192.168.1.1:9200/indexname/typename/_delete_by_query -d "{\"query\":{\"bool\":{\"must\":[{\"range\":{\"C_T\":{\"lt\":$dat}}}]}}}" -H "Content-Type: application/json"
批量删除(delete_by_query)
POST /indexname/typename/_delete_by_query {"query": {"range": {"time": {"gte": "2016-01-01 00:00:00:000","lte": "2016-01-02 00:05:05:670"}}}}
POST /indexname/typename/_delete_by_query {"query": {"term": {"age": "48"}}}
POST /indexname/typename/_delete_by_query {"query": {"bool": {"must": [{"match_all": { }}]}}}
POST /indexname/typename/_delete_by_query
{
"query": {
"term": {
"ip": {
"value": "192.168.1.1"
}
}
}
}
批量删除(delete)
DELETE /indexname/typename/_query {"query": {"range": {"time": {"gte": "2019-01-01 00:00:00:000","lte": "2019-01-02 23:59:59:000"}}}}
单条删除
DELETE /indexname/typename/id
批量插入
POST /indexname/typename/_bulk
{ "index": {}}
{"name" : "123",
"age":11,
"sex":"妞"
}
{ "index": {}}
{"name" : "1234",
"age":113,
"sex":"妞"
}
{ "index": {}}
{"name" : "12345",
"age":112,
"sex":"妞"
}
{ "index": {}}
{"name" : "123345",
"age":111,
"sex":"妞"
}
单条插入日志
POST /indexname/typename
{"age": 123,
"name":"asd"
}
单机多节点部署
1).将原来es复制一份
2).修改node.name、 http.port、path.data、 path.logs
3).node.max_local_storage_nodes:2 (每台机器运行的节点数)
根据查询批量修改
将所有age为123的name改为张三
{"script":{"inline":"ctx._source.name='张三'","lang":"painless"},"query":{"match":{"age":123}}}
根据查询新增字段
将所有存在name字段的数据,新增一个字段desc。他的值为age字段的值
{"script":{"inline":"ctx._source.desc=ctx._source.age","lang":"painless"},"query":{"bool":{"must":[{"exists":{"field":"name"}}]}}}
查询未分配分片信息
curl -XGET 192.1668.1.1:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED
强制分配分片(可能会导致数据丢失)
将es02节点上indexname的7分片强制分配,允许数据丢失
curl -XPOST '192.168.1.1:9200/_cluster/reroute?retry_failed=5&pretty' -d '{"commands":[{"allocate_stale_primary": {"index": "indexname","shard": 7,"node": "es02", "accept_data_loss" : true}}]}'
获取分片不分配原因
http://192.168.1.1:9200/_cluster/allocation/explain
批量插入文件
curl -X POST "192.168.1.1:9200/_bulk" -H 'Content-Type: application/json' --data-binary @test1.txt
修改副本个数
PUT indexname/_settings {"number_of_replicas": 2}
聚合排序--javaapi
根据name字段进行排序,对age字段进行求和,根据求和结果进行倒序排列
.addAggregation(AggregationBuilders.terms("attackIp").field("name")
.order(Terms.Order.aggregation("aac", "value", false)) .subAggregation(AggregationBuilders.sum("aac").field("age"))
).setFrom(0).setSize(10).get();
聚合返回结果类型--javaapi
terms : StringTerms
min: IntervalMin
max: IntervalMax
count: IntervalCount
elasticdump 安装
先安装node.js 官网: https://nodejs.org/en/download/ 选择版本 下载 安装 执行命令:
nmp
install nmp
install elasticdump -g
聚合查询
根据name聚合,查询age字段的和
GET /indexname/typename/_search
{
"size": 0,
"aggs": {
" attackIp": {
"terms": {
"field": "name",
"order": {
"attackCount": "desc"
},
"size": 5
},
"aggs": {
"attackCount": {
"sum": {
"field": "age"
}
}
}
}
}
}
插入数据
POST /indexname/typename
{
"time": "2017-10-20 04:16:29:000",
"age": 47474,
"ip": "192.1668.1.1"
}
以上内容仅供参考!
本文作者为竹子君,转发请注明出处!~