ElasticSearch 入门

ElasticSearch

  1. 下面简称 ES 数据库,是日志处理三剑客 ELK 中的 E,主攻数据存储和检索
  2. ES 数据库的特点是,支持非常复杂的文本搜索,应用场景是非格式化的文本数据,如日志
  3. 目前新生的数据库,influxDB, kafka,ElasticSearch,Etcd(Kubernetes)默认都是分布式数据库,也符合大数据处理的要求
  4. ElasticSearch 支持不同种类的 分词工具,相当于插件,能对不同语言进行解析
  5. ElasticSearch 的操作灵活,支持 Restful API 通过 HTTP 请求访问,连接和访问都非常方便,且针对不同编程语言,ES 提供了客户端包,无需手写Restful API
  6. ES 的重点是灵活的搜索数据,ES 基于更早出现的 lucene 全文检索,但 lucene 需要非常多搜索理论的基础,使用起来非常困难

原理剖析

文本相似度

  1. 在自然语言中,搜索其实就是相似文本匹配

Lucene 语法

  1. Lucene 搜索语法

基础操作

1. 查看所有索引

  1. http://192.168.1.100:9210/_cat/indices?v所有索引信息
health status index                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .watches                        WJ04xpVmTqahsku9zD-GJQ   1   1          6            0       42kb         20.8kb
green  open   .monitoring-kibana-6-2020.07.20 Ct1UbZCfT_-OlwY2Z0WjsQ   1   1      14960            0      7.4mb          3.7mb
green  open   .watcher-history-9-2020.07.21   aLSM3p5gR0iYUnHhYecwQQ   1   1        744            0      2.1mb            1mb
green  open   .monitoring-es-6-2020.07.20     f1cHHZcbRQCpuSNdAbWQag   1   1      18647            0     20.1mb          9.9mb
green  open   .kibana_1                       8YP0eScrTKK6CRIl51nzUA   1   1          4            1     39.9kb         19.9kb
green  open   province                        3zj4TD2FSou_KYRktKeGYQ   5   1          1            0     12.9kb          6.4kb
green  open   .triggered_watches              16E_SUjiQ7i9cJMQBqQcLA   1   1          0            0    994.4kb        495.7kb
green  open   .watcher-history-9-2020.07.20   YUFRl8alTE6x0xZnDGqH1A   1   1       7488            0     20.8mb         10.4mb
green  open   .security-6                     SEtWrWenSF2_SJNVItxxUQ   1   1          4            0     59.4kb         29.7kb
green  open   .monitoring-es-6-2020.07.21     qIxfl7UUTIa8_BlaZcbgBQ   1   1       2440          264      4.8mb          2.3mb
green  open   .kibana_task_manager            S0zpseeETxCAtLog6bbySA   1   1          2            0     19.5kb         12.6kb
green  open   .monitoring-kibana-6-2020.07.21 TfRZ2o9xQ_WHOA1PAd22Vg   1   1       1490            0    876.9kb        431.9kb

  1. http://192.168.1.100:9210/_cat/segments 更加详细的索引信息
index                           shard prirep ip          segment generation docs.count docs.deleted    size size.memory committed searchable version compound
.kibana_task_manager            0     p      172.21.0.12 _e              14          1            0   5.9kb        1932 true      true       7.7.0   true
.kibana_task_manager            0     p      172.21.0.12 _f              15          1            0   6.3kb        1932 true      true       7.7.0   true
.kibana_task_manager            0     r      172.21.0.5  _s              28          2            0   6.6kb        1932 true      true       7.7.0   false
.triggered_watches              0     r      172.21.0.12 _0               0          2            0   2.9kb         670 false     true       7.7.0   true
.watcher-history-9-2020.07.20   0     r      172.21.0.12 _12s          1396       7488            0  10.4mb       13603 true      true       7.7.0   false
.watcher-history-9-2020.07.20   0     p      172.21.0.5  _131          1405       7488            0  10.4mb       13603 true      true       7.7.0   false
.monitoring-kibana-6-2020.07.20 0     r      172.21.0.12 _24y          2770      14960            0   3.7mb       10535 true      true       7.7.0   false
.monitoring-kibana-6-2020.07.20 0     p      172.21.0.5  _24x          2769      14960            0   3.7mb       10503 true      true       7.7.0   false
province                        3     p      172.21.0.12 _0               0          1            0   5.1kb        1358 true      true       7.7.0   true
province                        3     r      172.21.0.5  _0               0          1            0   5.1kb        1358 true      true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _83            291        816            0 217.9kb       11114 false     true       7.7.0   false
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8d            301        818            0 218.4kb       10810 false     true       7.7.0   false
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8e            302          6            0  16.3kb        4719 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8f            303          6            0  16.3kb        4759 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8g            304          6            0    16kb        4663 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8h            305          6            0  16.2kb        4671 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8i            306          6            0    16kb        4687 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8j            307          6            0  16.3kb        4775 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     p      172.21.0.12 _8k            308          6            0  16.4kb        4823 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _83            291        811            0 215.5kb        9098 false     true       7.7.0   false
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8d            301        817            0 217.9kb       10898 false     true       7.7.0   false
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8e            302          6            0  16.3kb        4711 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8f            303          6            0  16.3kb        4719 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8g            304          6            0  16.3kb        4759 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8h            305          6            0    16kb        4663 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8i            306          6            0  16.2kb        4671 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8j            307          6            0    16kb        4687 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8k            308          6            0  16.3kb        4775 false     true       7.7.0   true
.monitoring-kibana-6-2020.07.21 0     r      172.21.0.5  _8l            309          6            0  16.4kb        4823 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5l            201        383            0 553.5kb        7908 false     true       7.7.0   false
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5v            211        403            0   580kb        7804 false     true       7.7.0   false
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5w            212          6            0    27kb        7480 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5x            213          6            0    27kb        7463 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5y            214          6            0  27.1kb        7440 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _5z            215          6            0  26.9kb        7471 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _60            216          6            0  26.9kb        7440 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _61            217          6            0    27kb        7439 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _62            218          6            0  27.2kb        7439 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _63            219          6            0  26.9kb        7479 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     r      172.21.0.12 _64            220          6            0  26.9kb        7439 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5l            201        386            0 554.6kb        7940 false     true       7.7.0   false
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5v            211        406            0   584kb        7956 false     true       7.7.0   false
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5w            212          6            0    27kb        7463 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5x            213          6            0  27.1kb        7440 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5y            214          6            0  26.9kb        7471 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _5z            215          6            0  26.9kb        7440 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _60            216          6            0    27kb        7439 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _61            217          6            0  27.2kb        7439 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _62            218          6            0  26.9kb        7479 false     true       7.7.0   true
.watcher-history-9-2020.07.21   0     p      172.21.0.5  _63            219          6            0  26.9kb        7439 false     true       7.7.0   true
.monitoring-es-6-2020.07.20     0     p      172.21.0.12 _15o          1500      18647            0   9.9mb       24659 true      true       7.7.0   false
.monitoring-es-6-2020.07.20     0     r      172.21.0.5  _xn           1211      16101           26   8.6mb       18511 true      true       7.7.0   false
.monitoring-es-6-2020.07.20     0     r      172.21.0.5  _13h          1421       2546            0   1.5mb       44305 true      true       7.7.0   false
.watches                        0     p      172.21.0.12 _15k          1496          6            0    15kb        2257 false     true       7.7.0   true
.watches                        0     r      172.21.0.5  _154          1480          2            0   9.6kb        2023 false     true       7.7.0   true
.watches                        0     r      172.21.0.5  _155          1481          4            0  10.9kb        2249 false     true       7.7.0   true
.kibana_1                       0     r      172.21.0.12 _2               2          1            1   7.4kb        2165 true      true       7.7.0   false
.kibana_1                       0     r      172.21.0.12 _3               3          1            0   3.4kb        1121 true      true       7.7.0   true
.kibana_1                       0     r      172.21.0.12 _4               4          1            0   3.4kb        1121 true      true       7.7.0   true
.kibana_1                       0     r      172.21.0.12 _5               5          1            0   5.2kb         912 true      true       7.7.0   true
.kibana_1                       0     p      172.21.0.5  _2               2          1            1   7.4kb        2165 true      true       7.7.0   false
.kibana_1                       0     p      172.21.0.5  _3               3          1            0   3.4kb        1121 true      true       7.7.0   true
.kibana_1                       0     p      172.21.0.5  _4               4          1            0   3.4kb        1121 true      true       7.7.0   true
.kibana_1                       0     p      172.21.0.5  _5               5          1            0   5.2kb         912 true      true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _5y            214       1265           32     1mb       69889 false     true       7.7.0   false
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _68            224       1323           32     1mb       73149 false     true       7.7.0   false
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _69            225         18           32  74.8kb       10159 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _6a            226         18           32  74.7kb       10095 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _6b            227         18           32  74.7kb       10023 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _6c            228         18           32  74.7kb       10023 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _6d            229         18           32  74.8kb       10151 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     r      172.21.0.12 _6e            230         50            0  74.8kb       10143 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6h            233       1283           32     1mb       70617 false     true       7.7.0   false
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6r            243       1323           32     1mb       73037 false     true       7.7.0   false
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6s            244         18           32  74.7kb       10095 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6t            245         18           32  74.7kb       10023 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6u            246         18           32  74.7kb       10023 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6v            247         18           32  74.8kb       10151 false     true       7.7.0   true
.monitoring-es-6-2020.07.21     0     p      172.21.0.5  _6w            248         50            0  74.8kb       10143 false     true       7.7.0   true
.security-6                     0     r      172.21.0.12 _0               0          1            0   4.2kb        1706 true      true       7.7.0   true
.security-6                     0     r      172.21.0.12 _1               1          1            0   7.1kb        1751 true      true       7.7.0   true
.security-6                     0     r      172.21.0.12 _2               2          1            0  10.6kb        1755 true      true       7.7.0   true
.security-6                     0     r      172.21.0.12 _3               3          1            0   7.1kb        1751 true      true       7.7.0   true
.security-6                     0     p      172.21.0.5  _0               0          1            0   4.2kb        1706 true      true       7.7.0   true
.security-6                     0     p      172.21.0.5  _1               1          1            0   7.1kb        1751 true      true       7.7.0   true
.security-6                     0     p      172.21.0.5  _2               2          1            0  10.6kb        1755 true      true       7.7.0   true
.security-6                     0     p      172.21.0.5  _3               3          1            0   7.1kb        1751 true      true       7.7.0   true
  1. 所有带点的都是一些自带的,或者组件索引,非 . 开头的是自己建的索引,如 province

2. 查看集群中节点状态

  1. https://1.1.1.1:9200/_cat/nodes?v
ip          heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
1.1.1.1            45          98   5    0.10    0.21     0.15 mdi       *      1595214621000238732
1.1.1.2            44          98   4    0.02    0.18     0.20 mdi       -      1595214621000238632

3. 查看集群健康状态

  1. https://1.1.1.1:9200/_cat/health?v
epoch      timestamp cluster     status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1595297453 02:10:53  es-q2lnf6va green           2         2     32  16    0    0        0             0                  -                100.0%

4. 更多集群信息,请访问 官网 cat API

  1. 以下参考 文章 https://www.cnblogs.com/ixan/p/9903555.html
API作用备注
/_cat/allocation存储空间大小查看
/_cat/shards数据分片
/_cat/shards/{index}查看相应索引的分片信息
/_cat/master查看集群的主节点
/_cat/nodes查看集群的所有节点
/_cat/indices查看所有索引信息
/_cat/indices/{index}查看单个索引信息
/_cat/segments更加详细的索引信息
/_cat/segments/{index}查看单个索引的详细信息
/_cat/count查看集群中所有文档的数量
/_cat/count/{index}查看某个索引的所有文档的数量
/_cat/recoveryhttps://www.elastic.co/guide/en/elasticsearch/reference/6.8/cat-recovery.html
/_cat/recovery/{index}https://www.elastic.co/guide/en/elasticsearch/reference/6.8/cat-recovery.html
/_cat/health查看集群的健康状态
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}

创建文档

  1. POST OR PUT

    1. 假设需要创建一个国家的索引(表)
    2. 国家下有省 (文档类型)
    3. 省有省的名字
  2. 创建 广东省

    1. PUT https://1.1.1.1:9200/country/province/guangdong
      {
      “area”: “179700 km^2”,
      “population”: “115 million”,
      “top GDP”: 1,
      “province_name”: “广东”
      }
    2. POST 可以不指定 id (广东)
      POST https://1.1.1.1:9200/country/province
      {
      “area”: “166900 km^2”,
      “population”: “46 million”,
      “top GDP”: 16,
      “province_name”: “江西”
      }
    3. 查看下结果
    	GET https://1.1.1.1:9200/country/_search
    	{
    	    "took": 0,
    	    "timed_out": false,
    	    "_shards": {
    	        "total": 5,
    	        "successful": 5,
    	        "skipped": 0,
    	        "failed": 0
    	    },
    	    "hits": {
    	        "total": 2,
    	        "max_score": 1,
    	        "hits": [
    	            {
    	                "_index": "country",
    	                "_type": "province",
    	                "_id": "guangdong",
    	                "_score": 1,
    	                "_source": {
    	                    "area": "179700 km^2",
    	                    "population": "115 million",
    	                    "top GDP": 1,
    	                    "province_name": "广东"
    	                }
    	            },
    	            {
    	                "_index": "country",
    	                "_type": "province",
    	                "_id": "mFVRb3MBK4tR3M5Sm_Gc",
    	                "_score": 1,
    	                "_source": {
    	                    "area": "166900 km^2",
    	                    "population": "46 million",
    	                    "top GDP": 16,
    	                    "province_name": "江西"
    	                }
    	            }
    	        ]
    	    }
    	}
    
  3. 删除文档

    Delete   https://1.1.1.1:9200/country/province/guangdong
    	
    {
        "_index": "country",
        "_type": "province",
        "_id": "guangdong",
        "_version": 2,
        "result": "deleted",
        "_shards": {
            "total": 2,
            "successful": 2,
            "failed": 0
        },
        "_seq_no": 1,
        "_primary_term": 1
    }
    
  4. 搜索文档

    	1. 用 GET  拼接字符在  URL中
    	2. 使用 body ,类似于 POST 传参
    

问题总结

  1. Elasticsearch 官网的例子 搜索 rock climbing ,搜索失败
    • 出现原因,因为安装 ES 的时候默认将 string类型的存储格式 变为 keyword 的格式
    • 而 keyword 是不进行分词的,需要将 keyword 改成 string,然后分词之后,将该字段进行索引
    • 才能搜索到 rock climbing 和 rock albums
    • 解决访问,设置string 的默认存储格式
    	PUT _template/stringDefault
    	{
    	  "order": 10,
    	  "index_patterns": [
    	    "*"
    	  ],
    	  "mappings": {
    	      "dynamic_templates": [
    	        {
    	          "strings": {
    	            "match_mapping_type": "string",
    	            "mapping": {
    	              "type": "text",
    	              "analyzer": "ik_max_word",
    	              "search_analyzer": "ik_smart"
    	            }
    	          }
    	        }
    	      ]
    	    }
    	  }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值