Rest风格API

elasticsearch提供了Rest风格的API,即http请求接口

1. 基本概念

Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。

索引(indices) Databases数据库
类型(type) Table数据库
文档(Document) Row行
字段(Field) Columns
  • 索引库(indices):indices是index的复数,代表许多的索引
  • 类型(type):类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念。
  • 文档(document):存入索引库原始的数据。比如每一条商品信息,就是一个文档。
  • 字段(field):文档中的属性。
  • 映射配置(mappings):字段的数据类型、属性、是否索引、是否存储等特性。

2. 索引操作

2.1 创建索引:put请求

  • kibana的安装使用看这个博客:elasticsearch入门(IKibana安装)
  • 使用kibana创建索引:
    • 请求方式:PUT
    • 请求路径:索引库名
    • 请求参数:json格式
put book
{"settings":{"number_of_shards":1,          /*分片数量*/"number_of_replicas":0         /*副本数量*/}
}

2.2 查看索引:get请求

get 索引库名

  • 我们可以使用*来查询所有索引库

2.3 删除索引:delete请求

delete 索引库名

3.映射配置

创建索引库,就相当于mysql创建“数据库”。接着我们来配置映射,相当于创建“表结构”。

  • 在ElasticSearch中,我们常配置:

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

3.1 创建映射关系

PUT /索引库名/_mapping/类型名称
{"properties": {"字段名": {"type": "类型","index": true,"store": true,"analyzer": "分词器"}}
}
  • 类型名称:基本概念中所说的type,类似于数据库中的表

    • 字段名: 类似于数据库中的列名。

      • type:类型,可以是text、long、short、date、integer、object等
      • index:是否索引,默认为true
      • store:是否存储,默认为false
      • analyzer:分词器,这里的‘ik_max_word’ 即使用ik分词器
  • 实例
/* 1.先创建索引 */
put czxy/* 2.创建映射关系 */
put czxy/_mapping/book
{"properties": {"title": {"type": "text","analyzer": "ik_max_word"},"images": {"type": "keyword","index": "false"},"price": {"type": "float"}}
}

3.2 查看映射关系

get /索引库名/_mapping

3.3 字段属性详解

1) type

  • Elasticsearch中支持的数据类型非常丰富

    • String 类型,又分为两种:

      • text:可分词,不可参与聚合
      • keyword:不可分词,数据会作为完整字段进行匹配,可以参与集合
    • Numerical:数值类型,分两类:
      • 基本数据类型:long、interger、short、byte、double、float、half_float
      • 浮点数的高进度类型:scaled_float
      • 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
    • Date:日期类型
      • elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。

2)index

index影响字段的索引情况

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

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

3)store

是否将数据进行额为存储。

Elasticsearch在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做‘_source’的属性中。而且我们可以通过过滤‘ _source’来选择哪些要显示,哪些不显示。

而如果设置store为true,就会在‘_source’以外额为存储一份数据,多余,因此一般我们都会将store设置为false,事实上,store的默认值就是false

带你使用Elasticsearch中提供的Rest风格API, 快来快来, 不要错过哦~~相关推荐

  1. elasticsearch删除索引_一文带您了解 Elasticsearch 中,如何进行索引管理(图文教程)

    在 Elasticsearch 中,索引是一个非常重要的概念,它是具有相同结构的文档集合.类比关系型数据库,比如 Mysql, 你可以把它对标看成和库同级别的概念. 今天小哈将带着大家了解, 在 El ...

  2. Elasticsearch中聚合的解释及使用

    什么是聚合: 聚合可以让我们极其方便的实现对数据的统计.分析.例如: 什么品牌的手机最受欢迎? 这些手机的平均价格.最高价格.最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sq ...

  3. 万字长文带你学习ElasticSearch

    ElasticStack技术栈 如果你没有听说过 Elastic Stack,那你一定听说过 ELK ,实际上 ELK 是三款软件的简称,分别是Elasticsearch. Logstash.Kiba ...

  4. 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! Elasticsearch 是一个全文搜索引擎,具有您期 ...

  5. Elasticsearch中的document数据格式,简单的集群管理,商品的索引的CRUD操作(学习资料记录)

    1.Document数据格式 面向文档的搜索分析引擎 (1)应用系统的数据结构都是面向对象的,复杂的. (2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式, ...

  6. 【Elasticsearch】Elasticsearch中数据是如何存储的

    1.概述 转载:Elasticsearch中数据是如何存储的 前言 很多使用Elasticsearch的同学会关心数据存储在ES中的存储容量,会有这样的疑问:xxTB的数据入到ES会使用多少存储空间. ...

  7. 【Elasticsearch】 Elasticsearch中数据是如何存储的

    1.概述 转载:https://elasticsearch.cn/article/6178 转载防丢失 前言 很多使用Elasticsearch的同学会关心数据存储在ES中的存储容量,会有这样的疑问: ...

  8. Elasticsearch中的date与时区问题

    1 前言 本文主要讲解Elasticsearch中date类型数据的底层存储原理,以及对带时区日期字符串和不带时区的日期字符串如何在ES底层存储进行验证.对于直接存储Long类型时间戳,不作过多描述. ...

  9. go-elasticSearch实战篇,带你学会elasticSearch的增删改查

    前言 哈喽,everybody,这是go-elastic学习系列教程第二篇文章.上一篇我们学习了ElasticSearch基础,如果还不懂基础的,可以先看一看上一篇文章,传送门.这一篇我们开始实战,写 ...

最新文章

  1. Hardware Error 内存报错
  2. 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )
  3. Openshift API部分源码学习笔记(一)
  4. CCNA课堂练习三:标准访问控制列表和扩展访问控制列表的区别
  5. how to become an expert in excel
  6. boost::mpl模块contains相关的测试程序
  7. list下界_下界理论
  8. php实现数值的整数次方
  9. linux目录名乱码,为什么挂载中文目录或文件名是乱码?
  10. gdb问题解决办法:no debugging symbols found
  11. SpringBoot是如何完成自动配置的
  12. Mac 同时安装jdk7、jdk8
  13. 华为防火墙配置IPSEC实现二个站点间网络互通 隧道模式 CLI配置 (三)
  14. 【数据库系统原理与应用/数据库系统概论】 期末复习手册
  15. 全球与中国混频器市场现状及未来发展趋势
  16. qt界面中禁用某个控件的鼠标滑轮事件
  17. Mac Xcode 更改编辑器文本字体大小
  18. 苹果手机click事件失效
  19. 利用Python爬虫网站数据直接导入mysql数据库中
  20. opengl纹理颠倒,rgb通道错位等。详解rgba,bgra,argb等内存序

热门文章

  1. iOS开发之网络音乐播放器(SC音乐)(二)
  2. 特征分解(eigendecomposition) and 奇异值分解(singular value decomposition, SVD)
  3. vscode 快速生成html
  4. 110序列检测器设计
  5. 工业相机CCD镜头选型公式
  6. JAVA安卓开发调用相机
  7. 总结了90条简单实用的Python编程技巧
  8. 禅道项目管理软件配置及使用教程
  9. 很无聊但是又很重要的 计算机网络基础知识 ---“计算机网络发展历程“
  10. mysql创建表语句like_MySQL 的create table as 与like 的使用