新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
Elasticsearch索引信息
嘉美伯爵   2019年10月9日 17:59   数据库   ElasticSearch   33  

es索引信息包含三部分:setiings、mappings、aliases三部分

元信息

  • _all(GET _all)

  • settings

# GET _settings
{
    "essay":{
        "settings":{
            "index":{
                "creation_date":"1570699454064",
                "analysis":{
                    "filter":{
                        "haystack_ngram":{
                            "type":"nGram",
                            "min_gram":"3",
                            "max_gram":"15"
                        },
                        "haystack_edgengram":{
                            "type":"edgeNGram",
                            "min_gram":"2",
                            "max_gram":"15"
                        }
                    },
                    "analyzer":{
                        "edgengram_analyzer":{
                            "filter":[
                                "haystack_edgengram",
                                "lowercase"
                            ],
                            "type":"custom",
                            "tokenizer":"standard"
                        },
                        "ngram_analyzer":{
                            "filter":[
                                "haystack_ngram",
                                "lowercase"
                            ],
                            "type":"custom",
                            "tokenizer":"standard"
                        }
                    },
                    "tokenizer":{
                        "haystack_edgengram_tokenizer":{
                            "min_gram":"2",
                            "side":"front",
                            "type":"edgeNGram",
                            "max_gram":"15"
                        },
                        "haystack_ngram_tokenizer":{
                            "type":"nGram",
                            "min_gram":"3",
                            "max_gram":"15"
                        }
                    }
                },
                "number_of_shards":"5",
                "number_of_replicas":"1",
                "uuid":"A2mzpq61R2akQi2EaMGOxw",
                "version":{
                    "created":"2010199"
                }
            }
        }
    }
}
  • mappings

# GET _mappings
{
    "essay":{
        "mappings":{
            "modelresult":{
                "properties":{
                    "django_ct":{
                        "type":"string",
                        "index":"not_analyzed",
                        "include_in_all":false
                    },
                    "django_id":{
                        "type":"string",
                        "index":"not_analyzed",
                        "include_in_all":false
                    },
                    "id":{
                        "type":"string"
                    },
                    "suggest":{
                        "type":"completion",
                        "analyzer":"ik",
                        "payloads":false,
                        "preserve_separators":true,
                        "preserve_position_increments":true,
                        "max_input_length":50
                    },
                    "text":{
                        "type":"string",
                        "analyzer":"ik"
                    },
                    "title":{
                        "type":"string",
                        "analyzer":"ik"
                    },
                    "update_date":{
                        "type":"date",
                        "format":"strict_date_optional_time||epoch_millis"
                    },
                    "views":{
                        "type":"long"
                    }
                }
            }
        }
    }
}
  • aliases

元数据

  • _index(类似于关系数据库的"数据库")

  • _type(类似于关系数据库的"数据表")

  • _id(类似于关系数据库的"id")

  • _score(es排序权重)

  • _source(指定显示字段)

  • _mapping(es字段映射信息)

  • _settings(es索引配置信息)

  • _all(所有元信息)

  • _update(更新数据)

  • _doc(单条文档信息)

  • _bulk(批量添加数据)

  • _count(返回记录数)

字段类型

简单类型

  • string类型

string类型在es5后废弃,随之拆分为text和keyword,具体区别如下:text(分词查询)、 keyword(全量查询)

  • 整数: byte, short, integer, long

es在存储数值类型时会先进行转换,比如"123"会被转换为123

  • 浮点数: float, double

  • 布尔型: boolean

  • 日期: date

此date具有年月日和年月日时分秒的双重属性,且会自动识别日期格式,比如2019-9-18、2019/9/18均会被正确识别

  • 二进制:binary

复杂类型

  • object

在上图中整个company即为object对象,它包含了多个字段

  • nested

在上图中emplyee雇员字段中,包含了列表嵌套多位字典员工的结构即为nested

geo类型

  • geo-point

  • geo-shape

专业类型

  • ip

  • competion

字段属性

以下是常用的es映射属性