ES基础

修改配置文件

配置文件所在目录:/etc/elasticsearch/

1.内存大小

vi /etc/elasticsearch/jvm.options

../../_images/81.png

将这两行前面的警号删除,其中Xms定义最小使用内存,Xmx定义最大使用内存

说明:默认,ES最高使用系统内存的50%,如果你的服务器还有其它服务,建议配置这两个参数。 建议:两个参数设置为一样,如果不一样可能会导致heap resize时产生停顿,最大内存不要超过机器内存总量的50%(因为要预留内存给lucene进行全文检索),并且最大内存不要超过32G,超过32G会开启一个内存对象指针压缩功能,从而导致性能下降

../../_images/91.png

2.修改常规配置,例如端口号、数据路径、日志路径、集群信息等

# Path to log files:
#
path.logs: /var/log/elasticsearch

# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
#http.port: 9200

# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0  ##这个表示监听全部ip,如果没有设置密码认证,这样配置万万不可。

ES常用操作

ES_P=”TKtp0B-QJVixjm3y58VF” 表示ssl生成的密码

1.查看集群状态

curl -u elastic:"$ES_P" -X GET  'http://localhost:9200/_cluster/health?pretty'

2.查看集群成员列表

curl -u elastic:"$ES_P" -X GET  'http://localhost:9200/_cat/nodes?v'

3.查看索引列表

curl -u elastic:"$ES_P" -X GET  'http://localhost:9200/_cat/indices?v'

4.创建索引

curl -u elastic:"$ES_P" -X PUT  'http://localhost:9200/test-index'  #索引状态为yellow,这是因为该索引有一个副本

5.修改副本数

curl -u elastic:"$ES_P" -X PUT -H "content-type:application/json;charset=utf-8"   http://localhost:9200/test-index/_settings -d '{"number_of_replicas": 0}'  #单机模式下,副本改为0

6.查看索引mapping、setting和索引文档数

curl -u elastic:"$ES_P"  'http://localhost:9200/test-index/_mapping?pretty'
curl -u elastic:"$ES_P"  'http://localhost:9200/test-index/_settings?pretty'
curl -u elastic:"$ES_P"  'http://localhost:9200/test-index/_count'

7.增加mapping

curl -u elastic:"$ES_P" -X POST -H "content-type:application/json;charset=utf-8"  'http://localhost:9200/test-index/_mapping' -d '{
      "properties" : {
        "content" : {
          "type" : "text"
        },
        "name" : {
          "type" : "keyword"
        }
      }
}

8.新增数据

curl -u elastic:"$ES_P" -X POST -H "content-type:application/json;charset=utf-8"  'http://localhost:9200/test-index/_create/1' -d '{
    "name": "aming",
    "content": "linux"
}'

9.查看索引内容

curl -u elastic:"$ES_P" -X GET  'http://localhost:9200/test-index/_search?pretty' 
#增加条件id为1
curl -u elastic:"$ES_P" -X GET 'http://localhost:9200/test-index/_doc/1?pretty'

10.清空索引内容

curl -u elastic:"$ES_P" -X POST  'http://localhost:9200/test-index/_delete_by_query?pretty' -H 'Content-Type: application/json' -d '{
  "query": {
    "match_all": {}
  }
}'

11.删除单条索引

curl -u elastic:"$ES_P" -XDELETE  'http://127.0.0.1:9200/index_name'

12.删除多条索引

curl -u elastic:"$ES_P" -XDELETE  'http://127.0.0.1:9200/index_01,index_02'

13.查看分片信息

curl -u elastic:"$ES_P"  -XGET 'http://127.0.0.1:9200/_cluster/allocation/explain?pretty'