当前位置:   article > 正文

elasticsearch之mapping配置

es mapping只存储不索引

本文主要记录es的schema mapping的一些配置项

mapping定义

  1. {
  2. "mappings": {
  3. "post": {
  4. "properties": {
  5. "id": {"type":"long", "store":"yes", "precision_step":"8" },
  6. "name": {"type":"string", "store":"yes", "index":"analyzed" },
  7. "published": {"type":"date", "store":"yes", "precision_step":"8" },
  8. "contents": {"type":"string", "store":"no", "index":"analyzed" }
  9. }
  10. }
  11. }
  12. }

或者

  1. {
  2. "book" : {
  3. "_index" : {
  4. "enabled" : true
  5. },
  6. "_id" : {
  7. "index": "not_analyzed",
  8. "store" : "yes"
  9. },
  10. "properties" : {
  11. "author" : {
  12. "type" : "string"
  13. },
  14. "characters" : {
  15. "type" : "string"
  16. },
  17. "copies" : {
  18. "type" : "long",
  19. "ignore_malformed" : false
  20. },
  21. "otitle" : {
  22. "type" : "string"
  23. },
  24. "tags" : {
  25. "type" : "string"
  26. },
  27. "title" : {
  28. "type" : "string",
  29. "fields":{
  30. "sort":{"type":"string","index":"not_analyzed"}
  31. }
  32. },
  33. "year" : {
  34. "type" : "long",
  35. "ignore_malformed" : false,
  36. "index" : "analyzed"
  37. },
  38. "available" : {
  39. "type" : "boolean"
  40. }
  41. }
  42. }
  43. }

属性解说

  • index
    可选值为analyzed(默认)和no,如果是字段是字符串类型的,则可以是not_analyzed.

  • store
    可选值为yes或no,指定该字段的原始值是否被写入索引中,默认为no,即结果中不能返回该字段。

  • boost
    默认为1,定义了文档中该字段的重要性,越高越重要

  • null_value
    如果一个字段为null值(空数组或者数组都是null值)的话不会被索引及搜索到,null_value参数可以显示替代null values为指定值,这样使得字段可以被搜索到。

  • include_in_all
    指定该字段是否应该包括在_all字段里头,默认情况下都会包含。

mapping操作

新建mapping

curl -s -XPOST '192.168.99.100:9200/library' --data-binary @mapping.json

更新mapping

  1. curl -XPOST '192.168.99.100:9200/library/book/_mapping' -d'
  2. {
  3. "book": {
  4. "properties": {
  5. "description": {
  6. "type": "string",
  7. "store": "yes",
  8. "index": "analyzed"
  9. }
  10. }
  11. }
  12. }
  13. '

查看mapping

curl -XGET '192.168.99.100:9200/library/book/_mapping?pretty'

返回

  1. {
  2. "library" : {
  3. "mappings" : {
  4. "book" : {
  5. "properties" : {
  6. "author" : {
  7. "type" : "string"
  8. },
  9. "available" : {
  10. "type" : "boolean"
  11. },
  12. "characters" : {
  13. "type" : "string"
  14. },
  15. "copies" : {
  16. "type" : "long"
  17. },
  18. "description" : {
  19. "type" : "string",
  20. "store" : true
  21. },
  22. "otitle" : {
  23. "type" : "string"
  24. },
  25. "section" : {
  26. "type" : "long"
  27. },
  28. "tags" : {
  29. "type" : "string"
  30. },
  31. "title" : {
  32. "type" : "string"
  33. },
  34. "year" : {
  35. "type" : "long"
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }

可以修改的项:

  • 增加新的类型定义

  • 增加新的字段

  • 增加新的分析器

不允许修改的项:

  • 更改字段类型(比如文本改为数字)

  • 更改存储为不存储,反之亦然

  • 更改索引属性的值

  • 更改已索引文档的分析器

注意的是新增字段或更改分析器之后,需要再次对所有文档进行索引重建

字段的数据类型

简单类型

  • string(指定分词器)

  • date(默认使用UTC保持,也可以使用format指定格式)

  • 数值类型(byte,short,integer,long,float,double)

  • boolean

  • binary(存储在索引中的二进制数据的base64表示,比如图像,只存储不索引)

  • ip(以数字形式简化IPV4地址的使用,可以被索引、排序并使用IP值做范围查询).

有层级结构的类型

比如object 或者 nested.

特殊类型

比如geo_point, geo_shape, or completion.

参考

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

闽ICP备14008679号