elasticsearch 基本概念

北慕城南 提交于 2019-12-02 11:12:59

创建索引库

   就是存放索引的数据库, 在索引中创建 映射 

   put http://localhost:9200/索引库名称                          请求体:

{
  "settings":{
  "index":{
      "number_of_shards":1,
      "number_of_replicas":0
   }    
  }
}

number_of_shards:设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同
                                   的结点,提高了ES的处理能力和高可用性,入门程序使用单机环境,这里设置为1。
number_of_replicas:设置副本的数量,设置副本是为了提高ES的高可靠性,单机环境设置为0.
                                   如下是创建的例子,创建xc_course索引库,共1个分片,0个副本:

创建映射

就是设置索引中 字段的属性   一旦创建只能增加,不能修改已经创建的

post 请求:http://localhost:9200/xc_course/doc/_mapping

 {
  "properties": {   
           "name": {
              "type": "text"
           },
           "description": {
              "type": "text"
           },
           "studymodel": {
              "type": "keyword"
           }
        }
}

创建文档 

ES中的文档相当于MySQL数据库表中的记录。
发送:put 或Post http://localhost:9200/xc_course/doc/id值   (如果不指定id值ES会自动生成ID)
 http://localhost:9200/xc_course/doc/4028e58161bcf7f40161bcf8b77c0000             请求体:
   对应映射设置的属性值

{
  "name":"Bootstrap开发框架",
  "description":"Bootstrap是由Twitter推出的一个前台页面开发框架,在行业之中使用较为广泛。此开发框架包
含了大量的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的
精美界面效果。",
  "studymodel":"201001"
}

常用映射类型

   text        表示文本

  analyzer  表示创建索引使用的分词库  ik_max_word表示使用 分词尽量细,方便搜索时更多

  search_analyzer 表示 搜索时使用的分词库  ik_smart表示分词尽量长

"name": {
                  "type": "text",
                  "analyzer":"ik_max_word",
                  "search_analyzer":"ik_smart"
   }

index   表示要不要进行索引  不会创建索引搜索就不会搜索到  列如存放图片的路径就不需要      默认true 

 "pic": {
  "type": "text",           
              "index":false
           }

store 是否在source之外存储,每个文档索引后会在 ES中保存一份原始文档,存放在"_source"中,一般情况下不需要设置
store为true,因为在_source中已经有一份原始文档了。

keyword关键字字段

  对关键字不会进行分词   表示精准搜索才会搜索到

{
  "properties": {   
           "studymodel":{
             "type":"keyword"
           },
            "name":{
             "type":"keyword"
           }
  }   
}

date日期类型

f通过format设置日期格式下边的设置允许date字段存储年月日时分秒、年月日及毫秒三种格式。

{
"properties": {    
        "timestamp": {
          "type":   "date",
          "format": "yyyy‐MM‐dd HH:mm:ss||yyyy‐MM‐dd"
        }
      }
}

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!