带你使用Elasticsearch中提供的Rest风格API, 快来快来, 不要错过哦~~
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,节省空间。
- String 类型,又分为两种:
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, 快来快来, 不要错过哦~~相关推荐
- elasticsearch删除索引_一文带您了解 Elasticsearch 中,如何进行索引管理(图文教程)
在 Elasticsearch 中,索引是一个非常重要的概念,它是具有相同结构的文档集合.类比关系型数据库,比如 Mysql, 你可以把它对标看成和库同级别的概念. 今天小哈将带着大家了解, 在 El ...
- Elasticsearch中聚合的解释及使用
什么是聚合: 聚合可以让我们极其方便的实现对数据的统计.分析.例如: 什么品牌的手机最受欢迎? 这些手机的平均价格.最高价格.最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sq ...
- 万字长文带你学习ElasticSearch
ElasticStack技术栈 如果你没有听说过 Elastic Stack,那你一定听说过 ELK ,实际上 ELK 是三款软件的简称,分别是Elasticsearch. Logstash.Kiba ...
- 如何用你最熟悉的 SQL 来查询 Elasticsearch 中的数据?
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! Elasticsearch 是一个全文搜索引擎,具有您期 ...
- Elasticsearch中的document数据格式,简单的集群管理,商品的索引的CRUD操作(学习资料记录)
1.Document数据格式 面向文档的搜索分析引擎 (1)应用系统的数据结构都是面向对象的,复杂的. (2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式, ...
- 【Elasticsearch】Elasticsearch中数据是如何存储的
1.概述 转载:Elasticsearch中数据是如何存储的 前言 很多使用Elasticsearch的同学会关心数据存储在ES中的存储容量,会有这样的疑问:xxTB的数据入到ES会使用多少存储空间. ...
- 【Elasticsearch】 Elasticsearch中数据是如何存储的
1.概述 转载:https://elasticsearch.cn/article/6178 转载防丢失 前言 很多使用Elasticsearch的同学会关心数据存储在ES中的存储容量,会有这样的疑问: ...
- Elasticsearch中的date与时区问题
1 前言 本文主要讲解Elasticsearch中date类型数据的底层存储原理,以及对带时区日期字符串和不带时区的日期字符串如何在ES底层存储进行验证.对于直接存储Long类型时间戳,不作过多描述. ...
- go-elasticSearch实战篇,带你学会elasticSearch的增删改查
前言 哈喽,everybody,这是go-elastic学习系列教程第二篇文章.上一篇我们学习了ElasticSearch基础,如果还不懂基础的,可以先看一看上一篇文章,传送门.这一篇我们开始实战,写 ...
最新文章
- Hardware Error 内存报错
- 【Android FFMPEG 开发】FFMPEG 解码 AVPacket 数据到 AVFrame ( AVPacket-解码器 | 初始化 AVFrame | 解码为 AVFrame 数据 )
- Openshift API部分源码学习笔记(一)
- CCNA课堂练习三:标准访问控制列表和扩展访问控制列表的区别
- how to become an expert in excel
- boost::mpl模块contains相关的测试程序
- list下界_下界理论
- php实现数值的整数次方
- linux目录名乱码,为什么挂载中文目录或文件名是乱码?
- gdb问题解决办法:no debugging symbols found
- SpringBoot是如何完成自动配置的
- Mac 同时安装jdk7、jdk8
- 华为防火墙配置IPSEC实现二个站点间网络互通 隧道模式 CLI配置 (三)
- 【数据库系统原理与应用/数据库系统概论】 期末复习手册
- 全球与中国混频器市场现状及未来发展趋势
- qt界面中禁用某个控件的鼠标滑轮事件
- Mac Xcode 更改编辑器文本字体大小
- 苹果手机click事件失效
- 利用Python爬虫网站数据直接导入mysql数据库中
- opengl纹理颠倒,rgb通道错位等。详解rgba,bgra,argb等内存序
热门文章
- iOS开发之网络音乐播放器(SC音乐)(二)
- 特征分解(eigendecomposition) and 奇异值分解(singular value decomposition, SVD)
- vscode 快速生成html
- 110序列检测器设计
- 工业相机CCD镜头选型公式
- JAVA安卓开发调用相机
- 总结了90条简单实用的Python编程技巧
- 禅道项目管理软件配置及使用教程
- 很无聊但是又很重要的 计算机网络基础知识 ---“计算机网络发展历程“
- mysql创建表语句like_MySQL 的create table as 与like 的使用