• 初识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格式的查询语句
  • 相关阅读:
    委托
    apply()和call()
    Sql小技巧
    plsql中文乱码
    Windows8中使用IE8等低版本浏览器
    React Native
    谷歌浏览器添加flash白名单
    jsonp原理详解
    垂直居中
    window.moveTo(),window.moveBy()不生效
  • 原文地址:https://www.cnblogs.com/zxbdboke/p/10465720.html
Copyright © 2020-2023  润新知