赞
踩
1.请求方式:put
2.请求路径:索引库名
3.请求参数:json格式
- put book
-
- {
-
- "settings":{
-
- "number_of_shards":1, /*分片数量*/
-
- "number_of_replicas":0 /*副本数量*/
-
- }
-
- }
- number_of_shards 是指索引要做多少个分片,只能在创建索引时指定,后期无法修改。
- number_of_replicas 是指每个分片有多少个副本,后期可以动态修改
- 什么是分片?
ES中所存数据的文件块,也是数据的最小单元块。假如有2个分片,插入10条数据,默认,每个分片存5条。
get 索引库名
我们可以使用*来查询所有索引库
delete 索引库名
- PUT /索引库名/_mapping/类型名称
- {
- "properties": {
- "字段名": {
- "type": "类型",
- "index": true,
- "store": true,
- "analyzer": "分词器"
- }
- }
- }
- 类型名称:基本概念中所说的type,类似于数据库中的表
- 字段名:类似于数据库中的列名。
- type:类型,可以是text、keyword、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"
- }
- }
- }

GET /索引库名/_mapping
- Elasticsearch中支持的数据类型非常丰富
- String类型,又分两种:
- text修饰字符串,默认进行分词,并生成索引。不能用来过滤、排序和聚合等操作。
- keyword修饰字符串,不会分词,不会建立索引。常常被用来过滤、排序和聚合。
- Numerical:数值类型,分两类
- 基本数据类型:long、interger、short、byte、double、float、half_float
- 浮点数的高精度类型:scaled_float
- 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
- Date:日期类型
- elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。
index影响字段的索引情况。
- true:字段会被索引,则可以用来进行搜索。默认值就是true
- false:字段不会被索引,不能用来搜索
index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。
但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置index为false。
是否将数据进行额外存储。
Elasticsearch在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做`_source`的属性中。而且我们可以通过过滤`_source`来选择哪些要显示,哪些不显示。
而如果设置store为true,就会在`_source`以外额外存储一份数据,多余,因此一般我们都会将store设置为false,事实上,**store的默认值就是false。**
语法:没有id
POST _index/_type/
{
"属性": "值",
....
}
实例
- POST czxy/book/
- {
- "title": "标题",
- "price": 1234
- }
语法:数据存在更新;如果不存在添加(指定id)
PUT _index/_type/_id
{
"属性": "值",
....
}
实例
- PUT czxy/book/b001
-
- {
-
- "title": "标题123",
-
- "price": 1234
-
- }
语法:DELETE _index/_type/_id
实例:DELETE czxy/book/b001
指定id查询:GET czxy/book/b001
指定id查询,检索指定内容:GET czxy/book/b001?_source=title,price
- PUT czxy2
- PUT czxy2/_mapping/user
- {
- "properties": {
- "username": {
- "type": "text",
- "analyzer": "ik_max_word"
- },
- "city": {
- "type": "keyword"
- },
- "age": {
- "type": "float"
- }
- }
- }
-
-
- PUT czxy2/user/u001
- {
- "username": "张三",
- "city": "山西",
- "age": 18
- }
-
- PUT czxy2/user/u002
- {
- "username": "张四",
- "city": "山东",
- "age": 20
- }
-
- PUT czxy2/user/u003
- {
- "username": "张三三",
- "city": "山东",
- "age": 22
- }

- GET _search
- {
- "query": {
- "match_all": {}
- }
- }
- GET czxy2/_search
- {
- "query": {
- "match_all": {}
- }
- }
- GET czxy2/_search
- {
- "query": {
- "match_all": {}
- },
- "_source": ["username","city"]
- }
- GET czxy2/_search
- {
- "query": {
- "match": {
- "username": "张三"
- }
- }
- }
1.bool:多条件拼接
2.must:必须
3.must_not:不含
4.should:可有可无
- GET czxy2/_search
- {
- "query": {
- "bool": {
- "must": [
- {
- "match": {
- "city": "山东"
- }
- }
- ],
- "must_not": [
- {
- "match": {
- "age": 22
- }
- }
- ]
- }
- }
- }

注意:must和should同时存在的时候,should将会变得不起作用
- GET czxy2/_search
- {
- "query": {
- "bool": {
- "should": [
- {
- "match": {
- "city": "山东"
- }
- },
- {
- "match": {
- "city": "山西"
- }
- }
- ]
- }
- }
- }

term 进行精确匹配(数据要求:数字、日期、布尔、not_analyzed的字符串(未分词))
- GET czxy2/_search
- {
- "query": {
- "term": {
- "age": 22
- }
- }
- }
range 用于确定范围,gt 大于、lt 小于、gte大于等于、lte小于等于
- GET czxy2/_search
- {
- "query": {
- "range": {
- "age": {
- "gte": 19,
- "lte": 21
- }
- }
- }
- }
- GET czxy2/_search
- {
- "query": {
- "match_all": {}
- },
- "sort": [
- {
- "age": {
- "order": "desc"
- }
- }
- ]
- }
from 设置索引号,从0开始
size 设置每页个数
- GET czxy2/_search
- {
- "query": {
- "match_all": {}
- },
- "from": 0,
- "size": 1
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。