原创 我又来学ElasticSearch了。。。

发布时间:2021-06-24 02:31:34 浏览 230 来源:猿笔记 作者:贺贺学编程

    *[初来乍到创建索引](#\\_5),*[简单的查询数据](#\\_83),*[自认为高大上查询](#\\_198),**写在前面**,我已经不记得这是第几次学习ElasticSearch(es)了,后来可以简单的用命令来操作,再后来就在自己的项目中集成了es,#[]()初来乍到创建索引。把索引比作数据库,把类型比作数据库的表,把文档比作表中每一行数据,先来体验一下安装创建索引。\\*\\*没安装es的小伙伴可以先看这篇文章[ElasticSearch、kibana、head、ik分词器在Windows下的安装](,es是rest风格的。


    # # #文章目录

    *新到达者创建索引](#\\_5)

    *简单查询数据](#\\_83)

    *我觉得我高,抬头](#\\_198)

    \\

    * *写于* *

    我不记得我学了多少次弹性搜索。我初学的时候就知道有这种东西,觉得用不上。后来,我可以简单地使用命令来操作它。后来我把es融入到自己的项目中,发现es的坑还是挺深的,只好重新学习。

    # ]()新到达创建索引

    许多文章都有这样的比喻,将索引与数据库进行比较,将类型与数据库表进行比较,将文档与表中的每一行数据进行比较。然而,在es7.x中,类型已经逐渐被放弃。不管怎样,我们先体验一下安装和创建索引。\ \ * \ \ *没有安装es的小伙伴可以先看看这篇文章【Windows下的ElasticSearch,kibana,head,ik Word Splitter安装】(

    Es是restful的,所以您可以通过PUT命令创建一个索引

    **创建user_index索引**

    PUT/user_index

    这样,就创建了一个索引。简单吗?我觉得很简单,简单的也有。\\

    **查看user_index索引信息**

    GET/user_index

    **删除user_index索引**

    DELETE/user_index

    *要是世界这么简单就好了。。。*\\

    索引有一个概念叫做碎片和备份,意思是说如果我们要存储10条数据,我们就把这10条数据分成几条。如果我们备份,我们可以备份每个部分,并将相同的部分放在不同的节点上(以防止单点故障)。\\

    * *创建并指定切片和备份的数量* *

    PUT/user_index

    {

    "settings":{

    "number_of_shards":3,

    "number_of_replicas":2

    }

    }

    通过设置来指定切片数为3和备份数为2很复杂。其实这个世界还没有放弃。此外,我们在创建索引时,还可以指定文档的属性(这里没有指定类型,默认为\\_doc),如整数、长、文本、关键字、日期等。\\

    **创建并指定properties**

    PUT/user_index

    {

    "settings":{

    "number_of_shards":3,

    "number_of_replicas":2

    },

    "mappings":{

    "properties":{

    "id":{

    "type":"long"

    },

    "name":{

    "type":"keyword"

    },

    "context":{

    "type":"text"

    },

    "age":{

    "type":"integer"

    },

    "date":{

    "type":"date"

    }

    }

    }

    }

    这个看起来有点舒服。其实还不够。世界不是这么简单的。“世界还小,我愿意陪你走到世界尽头。”继续,当我们创建索引时,我们可以指定单词分割器,ik单词分割器。\\

    * *创建并指定字段断字符* *

    PUT/user_index

    {

    "settings":{

    "number_of_shards":3,

    "number_of_replicas":2

    },

    "mappings":{

    "properties":{

    "context":{

    "type":"text",

    "analyzer":"ik_max_word"

    }

    }

    }

    }

    # ]()简单查询数据

    查询有一个关键字叫做`_search`。\\

    首先,我们创建一个索引,然后插入一些数据。默认类型格式为\\_doc(要放弃的正式类型)

    PUT/user_index

    {

    "settings":{

    "number_of_shards":3,

    "number_of_replicas":2

    },

    "mappings":{

    "properties":{

    "name":{

    "type":"keyword"

    },

    "age":{

    "type":"integer"

    },

    "date":{

    "type":"date",

    "format":"yyyy-MM-ddHH:mm:ss||yyyy-MM-dd"

    }

    }

    }

    }PUT/user_index/_doc/1

    {

    "name":"张三",

    "age":18,

    "date":"2020-12-04"

    }

    PUT/user_index/_doc/2

    {

    "name":"张四",

    "age":22,

    "date":"2020-12-04"

    }

    PUT/user_index/_doc/3

    {

    "name":"李三",

    "age":20,

    "date":"2020-12-04"

    }

    **查询user_index索引的全部数据**

    GET/user_index/_search

    * *另一个查询所有数据* *

    GET/user_index/_search

    {

    "query":{"match_all":{}}

    }

    * *查询指定的属性* * \ \

    这里的匹配匹配属于模糊匹配,可以分词,术语匹配属于精确匹配。分词分为文本型,关键词型不分词。

    GET/user_index/_search

    {

    "query":{

    "match":{

    "name":"张三"

    }

    }

    }

    * *按范围查询* *

    GET/user_index/_search

    {

    "query":{

    "range":{

作者信息

贺贺学编程 [等级:3] 公众号
发布了 523 篇专栏 · 获得点赞 37 · 获得阅读 7213

相关推荐 更多