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. Java后端线上问题排查常用命令收藏
  2. 【剑指offer-Java版】13O(1)时间删除链表结点
  3. 设计模式-UML图简单介绍
  4. jvm执行引擎全解,java解释器即时编译器,全都讲明白
  5. 02: MySQL的安装与基本配置
  6. Linux服务器上线时间,查看linux服务器时间
  7. mac solr mysql 配置文件_Solr配置文件浅析
  8. python读取xlsx文件年月日变成数字_python转化excel数字日期为标准日期操作
  9. Samsung Galaxy S III GT-I9300详细刷机教程
  10. pytorch可视化实例:gradcam在resnet18上的应用(快餐式代码教程)
  11. matlab求两向量夹角_MATLAB基础练习(一)
  12. viper4android fx 驱动,ViPER4Android FX 音效驱动社区版安
  13. PDF文件JAVA去水印源码,java实现pdf文件加水印
  14. 在线学习及作业平台管理系统(ssm,mysql)
  15. vue集成Luckyexcel实现在线编辑Excel,可自行导入,也可从服务器端获取
  16. 统计地铁一号线站点Python
  17. android 获取画布,Android触摸事件如何实现笔触画布详解
  18. android 实现一个开机自启动的service
  19. Clickhouse Kafka Engin参数记录
  20. HTTP 模拟post请求

热门文章

  1. Hello, Cocos2d-x
  2. break 和 continue 的区别?
  3. matlab数字滤波器设计实验,用MATLAB设计IIR数字滤波器
  4. Web服务器配置(Tomcat)【Centos】
  5. JavaFX应用在打包时fx:deploy is not available in……解决方法
  6. Segment Anything Model (SAM)——卷起来了,那个号称分割一切的CV大模型他来了
  7. Fanuc开发技术集-Focas2中英文函数对照表第十七部分
  8. oracle shutdown没有反应解决
  9. Modify Android dalvik vm heapsize
  10. ACM--steps--dyx--1.3.5--开门人和关门人