初识ElasticSearch

基本概念

Index(索引)

  • 含有相同属性的文档集合
  • 类似于mysql数据库中的database

Type(类型)

  • 索引可以定义一个或多个类型,文档必须属于一个类型;
  • 类似于mysql数据库中的table表,es中可以在index中建立type(table),通过mapping进行映射

Document(文档)

  • 文档是可以被索引的基本数据单位
  • 一条数据对应一篇文档即相当于mysql数据库中的一行数据row

分片

  • 每个索引都有多个分片,每个分片是一个Lucenc索引

备份

  • 拷贝一个份分片就完成了分片的备份

Mapping

  • 可以理解为mysql或者solr中对应的schema,es中的mapping增加了动态识别的功能
    # 查看mapping
    GET /lib1/user/_mapping
    # 执行结果
    {
      "lib1": {
        "mappings": {
          "user": {
            "properties": {
              "adress": {
                "type": "text"
              },
              "age": {
                "type": "integer"
              },
              "birthday": {
                "type": "date"
              },
              "interests": {
                "type": "text"
              },
              "name": {
                "type": "text"
              },
              "script": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        }
      }
  • 什么是映射:mapping定义了type中的每一个字段的数据类型以及这些字段如何分词此等相关属性
    -- 自定义mapping,创建索引的时候,可以预定义字段的类型以及相关属性,这样就能够把日期字段处理成日期,
    -- 把数字字段处理成数字,把字符串字段处理成字符串值等 PUT
    /lib1 { "settings": { "number_of_shards": 5 , "number_of_replicas": 0 }, "mappings": { "user":{ "properties": { "name":{"type":"text"}, "adress":{"type":"text"}, "age":{"type":"integer"}, "interests":{"type":"text"}, "birthday":{"type":"date"} } } } }
  • 支持的数据类型:核心数据类型
    • 字符型
      • text:该类型被用来索引长文本,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引。允许es来检查这些词语,text类型不能用来排序和聚合
      • keyword:该类型不需要进行分词,可以被用来检索过滤、排序和聚合。keyword类型只能用本身来进行检索 
    • 数字类型
      • long
      • integer
      • short
      • byte
      • double
      • float
    • 日期类型
      • date
    • 布尔类型
      • boolean
    • 二进制类型
      • binary
  • Indexed
    • 就是名义上的建立索引,es中默认都是会加上索引的
  • Query DSL
    • 类似于mysql的sql语句,只不过在es中是使用的json格式的查询语句
原文地址:https://www.cnblogs.com/zxbdboke/p/10465720.html