1.索引的简单操作

1.1 创建一个索引

  1. #创建一个索引
  2. PUT /person
  3. {
  4. "settings": {
  5. "number_of_shards": 5,
  6. "number_of_replicas": 1
  7. }
  8. }

image.png

1.2 查看索引信息

  1. #查看索引信息
  2. GET /person

image.png

1.3 删除索引

  1. #删除索引
  2. DELETE /person

image.png

2.Elasticseach中Field可以指定的类型

2.1 字符串类型

  • text:一般被用于全文索引,将当前Field进行分词
  • keyword:当前Field不会被分词

2.2 数值类型

  • long:-2^63~2^63-1,占用8个字节
  • integer:-2^31~2^31-1,占用4个字节
  • short:-2^15~2^15-1,占用2个字节
  • byte:-2^7~2^7-1,占用1个字节
  • double:占用8个字节
  • float:占用4个字节
  • half_float:精度比float小一半
  • scaled_float:根据一个long和一个scaled来表示一个浮点型

2.3 时间类型

  • date类型,针对时间类型指定具体的格式

2.4 布尔类型

  • boolean类型

2.5 二进制类型

  • binary

2.6 范围类型

  • long_range:赋值时,无需指定具体的内容,只需要存储一个范围即可,指定gt,lt,gte,lte
  • integer_range
  • double_range
  • float_range
  • date_range
  • ip_range

2.7 经纬度类型

  • geo_point:存储经纬度

2.8 ip类型

  • 可以存储ipv4或者ipv6

    3.创建索引并指定数据结构

    1. #创建索引,指定数据结构
    2. PUT /book
    3. {
    4. "settings": {
    5. #分片数
    6. "number_of_shards": 5,
    7. #备份数
    8. "number_of_replicas": 1
    9. },
    10. #指定数据结构
    11. "mappings": {
    12. #类型 Type
    13. "novel": {
    14. #文档存储的Field
    15. "properties": {
    16. #Field属性名
    17. "name": {
    18. #Filed类型
    19. "type": "text",
    20. #指定分词器
    21. "analyzer": "ik_max_word",
    22. #指定当前Field可以被作为查询条件
    23. "index": true,
    24. #指定当前Field是否需要额外存储
    25. "store": false
    26. },
    27. "author": {
    28. "type": "keyword"
    29. },
    30. "count": {
    31. "type": "long"
    32. },
    33. "on-sale": {
    34. "type": "date",
    35. #时间类型的格式化方式
    36. "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
    37. },
    38. "descr": {
    39. "type": "text",
    40. "analyzer": "ik_max_word"
    41. }
    42. }
    43. }
    44. }
    45. }

    4.创建索引并指定数据结构

    在Elasticsearch中,使用_index,_type,_id三个内容组合在一起,确定一个唯一的文档。

    4.1 新建文档

    4.1.1 自动生成id

    1. #添加文档,自动生成id
    2. POST /book/novel
    3. {
    4. "name": "盘龙",
    5. "author": "我吃西红柿",
    6. "count": 100000,
    7. "on-sale": "2000-01-01",
    8. "descr": "是否符合咖啡壶康师傅哈萨克VN可是别是看是基本上看不"
    9. }
    image.png

    4.1.2 手动指定id

    1. #添加文档,手动指定id
    2. PUT /book/novel/1
    3. {
    4. "name": "红楼梦",
    5. "author": "曹雪芹",
    6. "count": 10000000,
    7. "on-sale": "1985-01-01",
    8. "descr": "水电费喝咖啡和思考峰会上开发好舒服尽快回复"
    9. }
    image.png

    4.2 修改文档

    4.2.1 覆盖式修改

    1. #覆盖式修改文档
    2. PUT /book/novel/1
    3. {
    4. "name": "红楼梦",
    5. "author": "曹雪芹",
    6. "count": 10086,
    7. "on-sale": "1996-10-5"
    8. }

    4.2.2 doc方式修改

    1. #doc方式修改文档
    2. POST /book/novel/1/_update
    3. {
    4. "doc": {
    5. #指定上需要改的field和对应的值
    6. "count": 12345
    7. }
    8. }

    4.3 删除文档

    4.3.1 根据id删除文档

    1. #根据id删除文档
    2. DELETE /book/novel/1