当前位置:   article > 正文

Elasticsearch索引库、类型与文档_elasticsearch创建文档库设置文档类型

elasticsearch创建文档库设置文档类型

目录

索引库

创建索引库

查看索引库

删除索引库

类型及映射

创建映射字段

属性说明

type

index

store

查看映射关系

文档

新增文档

查看文档

修改文档

删除文档


索引库

创建索引库

  1. PUT /shop
  2. {
  3. "settings": {
  4. "属性名": "属性值"
  5. }
  6. }

查看索引库

GET /shop

删除索引库

DELETE /shop

类型及映射

有了索引库,等于有了数据库中的database。接下来就需要索引库中的类型了,也就是数据库中的。创建数据库表需要设置字段约束,索引库也一样,在创建索引库的类型时,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做字段映射(mapping) 。

字段的约束包括但不限于:

  • 字段的数据类型
  • 是否要存储
  • 是否要索引
  • 是否分词
  • 分词器是什么

创建映射字段

语法格式:

  1. PUT /索引库名/_mapping/类型名称
  2. {
  3. "properties": {
  4. "字段名": {
  5. "type": "类型",
  6. "index": true
  7. "store": true
  8. "analyzer": "分词器"
  9. }
  10. }
  11. }

属性说明

type

type为字段的数据类型,下面列出了几种最为常见的类型。

  • String类型,又分两种:

    • text:可分词,不可参与聚合;
    • keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合。
  • Numerical:数值类型,分两类:

    • 基本数据类型:long、interger、short、byte、double、float、half_float;

    • 浮点数的高精度类型:scaled_float。

      • 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
  • Date:日期类型

    elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。

  • Array:数组类型

    • 进行匹配时,任意一个元素满足,都认为满足;
    • 排序时,如果升序则用数组中的最小值来排序,如果降序则用数组中的最大值来排序。
  • Object:对象

  1. {
  2.   id: 123,
  3.   price: 25.5,
  4.   goods:{
  5. name: "apple",
  6. amount: 5
  7.   }
  8. }

如果存储到索引库的是对象类型,例如上面的goods,会把goods编程两个字段:goods.name和goods.amount

index

index影响字段的索引情况。

  • true:字段会被索引,则可以用来进行搜索。默认值就是true;
  • false:字段不会被索引,不能用来搜索。

index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置index为false。

store

是否将数据进行独立存储。

原始的文本会存储在_source里面,默认情况下其他提取出来的字段都不是独立存储的,是从_source里面提取出来的。当然你也可以独立的存储某个字段,只要设置store:true即可,获取独立存储的字段要比从_source中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置,默认为false。

事例:

  1. PUT /shop/_mapping/goods
  2. {
  3. "properties": {
  4. "title": {
  5. "type": "text",
  6. "analyzer": "ik_max_word"
  7. },
  8. "subtitle": {
  9. "type": "text",
  10. "analyzer": "ik_max_word"
  11. },
  12. "images": {
  13. "type": "keyword",
  14. "index": "false"
  15. },
  16. "price": {
  17. "type": "float"
  18. }
  19. }
  20. }

查看映射关系

GET /shop/_mapping/goods

响应结果:


文档

新增文档

如果文档没有唯一属性字段,可以通过POST方式新增,es会为文档生成唯一的uuid。

  1. POST /shop/goods
  2. {
  3. "title":"香蕉",
  4. "images":"http://image.xxx.com/123411.jpg",
  5. "price":3.12
  6. }

结果:

  1. {
  2. "_index" : "shop",
  3. "_type" : "goods",
  4. "_id" : "-yxENHQBsVejmPWpWQ2w",
  5. "_version" : 1,
  6. "result" : "created",
  7. "_shards" : {
  8. "total" : 2,
  9. "successful" : 1,
  10. "failed" : 0
  11. },
  12. "_seq_no" : 0,
  13. "_primary_term" : 1
  14. }

如果需要用自定义id进行新增文档,可以使用PUT方式:

  1. POST /shop/goods/3
  2. {
  3. "title":"西瓜",
  4. "images":"http://image.xxx.com/435252.jpg",
  5. "price":15.60
  6. }

结果:

  1. {
  2. "_index" : "shop",
  3. "_type" : "goods",
  4. "_id" : "3",
  5. "_version" : 1,
  6. "result" : "created",
  7. "_shards" : {
  8. "total" : 2,
  9. "successful" : 1,
  10. "failed" : 0
  11. },
  12. "_seq_no" : 0,
  13. "_primary_term" : 1
  14. }

查看文档

根据id查看指定文档:

GET /shop/goods/-yxENHQBsVejmPWpWQ2w

结果:

  1. {
  2. "_index" : "shop",
  3. "_type" : "goods",
  4. "_id" : "-yxENHQBsVejmPWpWQ2w",
  5. "_version" : 1,
  6. "_seq_no" : 0,
  7. "_primary_term" : 1,
  8. "found" : true,
  9. "_source" : {
  10. "title" : "香蕉",
  11. "images" : "http://image.xxx.com/123411.jpg",
  12. "price" : 3.12
  13. }
  14. }

修改文档

通过PUT方式,必须指定id,如果id存在则进行修改, 不存在则进行新增。

  1. PUT /shop/goods/3
  2. {
  3. "title":"西瓜1",
  4. "images":"http://image.xxx.com/435252.jpg",
  5. "price":12.60
  6. }

结果:

如果是新增,result结果为created,更新则为updated,每更新一次,version + 1。 

  1. {
  2. "_index" : "shop",
  3. "_type" : "goods",
  4. "_id" : "3",
  5. "_version" : 4,
  6. "result" : "updated",
  7. "_shards" : {
  8. "total" : 2,
  9. "successful" : 1,
  10. "failed" : 0
  11. },
  12. "_seq_no" : 3,
  13. "_primary_term" : 1
  14. }

删除文档

根据id进行删除:

DELETE /shop/goods/3

删除所有数据:

  1. POST shop/_delete_by_query
  2. {
  3. "query": {
  4. "match_all": {}
  5. }
  6. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/981293
推荐阅读
相关标签
  

闽ICP备14008679号