Mapping(映射->约束)

数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等。
Mapping用来定义Document中每个字段的类型,即所使用的分词器、是否索引等属性,非常关键等。创建Mapping 的代码示例如下:

  1. PUT stu stu类似于MySQL中的数据库名)
  2. {
  3. "mappings": { (可以理解为建表语句 create table关键字)
  4. "_doc":{ (相当于MySQL中表名)
  5. "properties":{ (相当于建表语句中要指定字段及字段类型的关键字)
  6. "id":{ (相当于具体某个字段)
  7. "type":"keyword""type"相当于要指定字段类型的关键字,"keyword "相当于字段的具体类型)
  8. },
  9. "name":{
  10. "type":"text"
  11. },
  12. "sex":{
  13. "type":"integer"
  14. },
  15. "birth":{
  16. "type":"date"
  17. }
  18. }
  19. }
  20. }
  21. }
  1. PUT stu/_doc/1001
  2. {
  3. "id":"001",
  4. "name":"红红",
  5. "sex":0,
  6. "birth":"1999-01-01"
  7. }
  1. GET stu/_search
  2. 输出结果如下:
  3. {
  4. "took" : 9,
  5. "timed_out" : false,
  6. "_shards" : {
  7. "total" : 5, (切片总数)
  8. "successful" :
  9. "skipped" : 0,
  10. "failed" : 0
  11. },
  12. "hits" : { (命中)
  13. "total" : 1, (命中总数一条)
  14. "max_score" : 1.0, (数据在里面存储的时候是有一个评分,这个评分是按照搜索的关键字跟文章的匹配度得来的,如果这个关键字在文章中出现频率较高,这个分数也相应的较大)
  15. "hits" : [
  16. {
  17. "_index" : "stu",
  18. "_type" : "_doc",
  19. "_id" : "1001",
  20. "_score" : 1.0,
  21. "_source" : { (具体的数据)
  22. "id" : "001",
  23. "name" : "红红",
  24. "sex" : 0,
  25. "birth" : "1999-01-01"
  26. }
  27. }
  28. ]
  29. }
  30. }