美文网首页
ES的基础使用

ES的基础使用

作者: 淡淡de盐 | 来源:发表于2020-05-20 15:17 被阅读0次

    索引模板

    {
        //匹配索引的,数组的形式,证明可以多个
        "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的基础使用

          本文链接:https://www.haomeiwen.com/subject/ugcnohtx.html