带你使用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基础,如果还不懂基础的,可以先看一看上一篇文章,传送门.这一篇我们开始实战,写 ...
最新文章
- Java后端线上问题排查常用命令收藏
- 【剑指offer-Java版】13O(1)时间删除链表结点
- 设计模式-UML图简单介绍
- jvm执行引擎全解,java解释器即时编译器,全都讲明白
- 02: MySQL的安装与基本配置
- Linux服务器上线时间,查看linux服务器时间
- mac solr mysql 配置文件_Solr配置文件浅析
- python读取xlsx文件年月日变成数字_python转化excel数字日期为标准日期操作
- Samsung Galaxy S III GT-I9300详细刷机教程
- pytorch可视化实例:gradcam在resnet18上的应用(快餐式代码教程)
- matlab求两向量夹角_MATLAB基础练习(一)
- viper4android fx 驱动,ViPER4Android FX 音效驱动社区版安
- PDF文件JAVA去水印源码,java实现pdf文件加水印
- 在线学习及作业平台管理系统(ssm,mysql)
- vue集成Luckyexcel实现在线编辑Excel,可自行导入,也可从服务器端获取
- 统计地铁一号线站点Python
- android 获取画布,Android触摸事件如何实现笔触画布详解
- android 实现一个开机自启动的service
- Clickhouse Kafka Engin参数记录
- HTTP 模拟post请求
热门文章
- Hello, Cocos2d-x
- break 和 continue 的区别?
- matlab数字滤波器设计实验,用MATLAB设计IIR数字滤波器
- Web服务器配置(Tomcat)【Centos】
- JavaFX应用在打包时fx:deploy is not available in……解决方法
- Segment Anything Model (SAM)——卷起来了,那个号称分割一切的CV大模型他来了
- Fanuc开发技术集-Focas2中英文函数对照表第十七部分
- oracle shutdown没有反应解决
- Modify Android dalvik vm heapsize
- ACM--steps--dyx--1.3.5--开门人和关门人