a、创建索引默认配置
PUT /索引名称
b、创建索引指定字段类型
put /索引名称/_mapping/typeName
{
"properties":{
"字段名":{
"type":"类型", text keyword long short date integer object
"index":true/false , 是否索引 默认true
"store":true/false, 是否存储 默认false
"analyzer":"分词器" 设置ik_max_word ik
}
}
}
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"user": {
"properties": {
"id": {
"type": "long",
"index": false,
"store": true
},
"name": {
"type": "text"
},
"nickname": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"money": {
"type": "double"
},
"brithday": {
"type": "date"
},
"flag": {
"type": "boolean"
},
"address": {
"properties": {
"city": {
"type": "text"
}
}
}
}
}
}
}
DELETE 索引名称
- 查看索引配置: GET /索引名称/_settings
- 查看索引映射 GET /索引名称/类型/_mapping
- 查看所有所有索引配置 GET _all/_settings
新增文档_不带id(随机生成id)
POST /索引名称/类型
{
}
新增文档_带id
PUT /索引名称/类型/1
{
}
DELETE /s1/user/1
GET /索引名称/类型名称/id值
查看指定字段
GET /s1/user/1?_source=name,age
PUT请求覆盖(不常用),PUT表示修改,不会修改id的值
id不存在,则会新增这条数据
id存在,则修改这条数据
POST不覆盖
POST /s1/user/s1R0TIwBUgvZMvyZVzzG/_update
{
"doc": {
"age":30
}
}
语法:
GET /索引名称/_search
{
"query":{
"查询类型":{
"查询条件" : "查询条件的取值"
}
}
}
查询类型: 表示取值为: match_all、match、term(分词查)等。
查询条件: 查询条件会根据类型来做数据的获取操作。
案例:
GET /s1/user/_search
{
"query": {
"match": {
"name": "wangwu"
}
},
"sort": [
{
"id": {
"order": "desc"
}
},
{
"age": {
"order": "desc"
}
}
],
"from": 0,
"size": 20,
"highlight": { //表示声明定义高亮处理
"pre_tags": "<span>", //表示前缀标签
"post_tags": "</span>",//表示后缀标签
"fields": {//将该高亮处理作用在哪一个字段上
"nickname":{}
}
}
}
查询被用于精准匹配查,可以匹配: 数字、时间、字符串、布尔等等
相当于mysql: select * from user where username = ‘admin’;
GET /s1/user/_search
{
"query": {
"term": {
"username":"admin"
}
}
}
查询在指定区间的数据
GET /s1/user/_search
{
"query": {
"range": {
"age": {
"gte":1000,
"lte": 4000
}
}
}
}
- gte: 大于等于
lte: 小于等于
gt: 大于
lt: 小于
每一个词条的模糊,词条是否包含模糊的语句
GET /s1/user/_search
{
"query": {
"fuzzy": {
"title": "Apple"
}
}
}
默认情况下es将结果保存在_source属性中。
通过编程方式来对_source中的数据进行过滤。
查询指定字段:
GET /s1/user/_search
{
"_source": ["title", "price"], //用来指定被查询结果展示的数据字段
"query": {
"fuzzy": {
"title": "Apple"
}
}
}
includes: 显示哪些字段
excludes: 不显示哪些字段
GET /s1/user/_search
{
"_source": {
"includes": ["title", "price"] //最终要展示的字段列表
},
"query": {
"fuzzy": {
"title": "Apple"
}
}
}
es使用查询获取一组查询的结果,然后通过filter可以实现结果的过滤。
a、条件查询中进行过滤
bool属性来指定查询条件,还可以在该字段中指定结果的过滤,通过filter属性来声明。
GET /s1/user/_search
{
"query": {
"bool": {
"filter": {
"range": {
"price": {
"gte": 10,
"lte": 20
}
}
},
"must": {
"match": {
"title": "小米手机"
}
}
}
}
}
b、无查询条件直接过滤
GET /s1/user/_search
{
"query": {
"constant_score": {
"filter": {
"range": {
"price": {
"gte": 10,
"lte": 20
}
}
}
}
}
}