ES的基础使用

索引模板

{
    //匹配索引的,数组的形式,证明可以多个
    "index_patterns": ["laravel*"],
    //基本设置
    "settings": {
        //主分片数
        "number_of_shards": 1,
        //备份数
        "number_of_replicas": 0
   },
    //映射
    "mappings": {
        //这个其实就是es的type,在es6.*的版本中,一个index只能存储一种type(7的版本会删除type),所以写成_doc(文档),你可以自己随便定义,反正最终展现形式就是type
        "_doc": {
            "_source": {
                //是否存储所有源数据,建议设置成true,如果只需要设置部分数据,可以在具体字段中使用store
                "enabled": true
            },
            //只有满足设定条件的字段会映射成date类型,不过多个类型只会存在一种,也就是第一次插入的是yyyy-MM-dd这种格式,后面也就必须全是这种格式,所以建议这个设置一个就好
            "dynamic_date_formats": ["yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd", "yyyy/MM/dd"],
            //具体设置字段
            "properties": {
                //将created_at字段设置成date类型,注意设置对应的format。
                "created_at": {
                    "type": "date",
                    "format": "yyyy-MM-dd HH:mm:ss"
                },
                //将updated_at字段设置成date类型
                "updated_at": {
                    "type": "date"
                }
            },
            //动态模板设置,前面properties中默认只设置了两个字段,如果新添加没有设置的字段,es默认会自己完成映射,但是你需要自己来设置这些映射规则没救要使用动态模板.下面一整段的意思就是把字符串映射成自定义的规则
            "dynamic_templates": [
                {
                    "strings": {
                        //匹配本来es要映射成字符串的字段
                        "match_mapping_type": "string",
                        "mapping": {
                            //匹配的字段映射成text类型
                            "type": "text",
                            //使用ik_smart分词
                            "analyzer": "ik_smart",
                            "fields": {
                                "keyword": {
                                    //同时映射keyword类型
                                    "type": "keyword",
                                    //忽略超过256字节的字段
                                    "ignore_above": 256
                                }
                            }
                        }
                    }
                }
            ]
        }
    }
}

如果更改了模板不能对已存在索引生效

创建索引

  • 下面创建一个名字为 laravel_es 的模板,mappings 下 _doc 索引 type
    image.png

插入文档

image.png

修改文档

  • POST
  • 127.0.0.1:9200/laravel_es/_doc/1/_update
{
  "doc": {
    "company_name": "名称"
  }
}

删除文档

  • delete
  • 127.0.0.1:9200/laravel_es/_doc/1

查询使用

你可能感兴趣的:(ES的基础使用)