Elastic search 基础操作

Elastic search 基础操作

一、索引index

Elastic search 基础操作_第1张图片

1、创建索引

PUT /test1/type1/1
{
  "name":"bobwang",
  "age":22
}

2、指定字段类型

字段类型:

字符串类型:text, keyword

数值类型:long, integer,short,byte, double,float,half,scaled, float

布尔类型:boolean

二进制类型:binary

eg:

指定索引index的字段类型

PUT /test2
{
  "mappings": {
    "properties": { 
    "name":{
      "type": "text"
    },
    "age":{
      "type":"long"
    },
    "brithday":{
      "type": "date"
    },
    "marrued":{
      "type":"boolean"
    }
    } 
  }
}

#out
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "test2"
}

get 查看

GET /test2
# out
{
  "test2" : {
    "aliases" : { },
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "long"
        },
        "brithday" : {
          "type" : "date"
        },
        "marrued" : {
          "type" : "boolean"
        },
        "name" : {
          "type" : "text"
        }
      }
    },
    "settings" : {
      "index" : {
        "creation_date" : "1592119203342",
        "number_of_shards" : "1",
        "number_of_replicas" : "1",
        "uuid" : "k5pMbsUdSTa8RRzXPrXHpw",
        "version" : {
          "created" : "7060199"
        },
        "provided_name" : "test2"
      }
    }
  }
}

如果字段没有指定, es会自己默认配置字段类型

通过get _cat/查看es的当前信息

 GET _cat/indices?v

Elastic search 基础操作_第2张图片

3、修改

曾今的方法put

PUT /test2/_doc/1
{
  "name":"wang",
  "age":23,
  "brithday":"2000-01-01",
  "married":"false"
}

Elastic search 基础操作_第3张图片
现在的方法post

POST /test2/_doc/1/_update
{
  "doc":{
    "name":"bobwang"
  }

Elastic search 基础操作_第4张图片
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0wBtOkd9-1592449903565)(/Users/bobwang/Library/Application Support/typora-user-images/image-20200614155902035.png)]

4、删除索引

delete

DELETE test2

Elastic search 基础操作_第5张图片

二、文档操作

1、添加数据 put

PUT /bob/user/1
{
  "name":"bobwang",
  "age":22,
  "marreid":false
}

out

Elastic search 基础操作_第6张图片pplication Support/typora-user-images/image-20200614160947296.png)]

es给默认匹配的类型Elastic search 基础操作_第7张图片

2、获取数据 get

GET /bob/user/1

Elastic search 基础操作_第8张图片

3、更新数据 put and post _update

Put直接覆盖原来的跟索引类似
PUT /bob/user/1
{
  "name":"bobwang",
  "age":27,
  "marreid":false
}

Elastic search 基础操作_第9张图片

post _update 直接修改某个字段 (推荐使用)
POST /bob/user/1/_update
{
  "doc":{
  "marreid":true
  }
}

Elastic search 基础操作_第10张图片

4、搜索

1)简单搜索
# 将 索引bob下在user文档(相当于mysql的表table)下的所有消息找出
GET bob/user/_search
# 查询条件是name=bobwang
GET bob/user/_search?q=name:bobwang

Elastic search 基础操作_第11张图片

分数表示:如过匹配出多个结果,如果结果的匹配度越高,分值就越高

hits:包含了索引和文档的信息,查询的结果总数,当里面包含多条时,可以遍历出来。

2)复杂操作搜索 select(排序,分页,高亮,模糊查询,精准查询)
GET bob/user/_search
{
  "query":{
    "match":{
      "name": "bobwang"
    }
  }
}
# 匹配的条件采用 json格式
a、过滤查询结果中的字段,选择性的展示 _source:[(字段list)]
GET bob/user/_search
{
  "query":{
    "match":{
      "name": "bobwang"
    }
  },
  "_source":["age","marreid"]
  
}

Elastic search 基础操作_第12张图片

b、排序 asc 生序 desc 降序
GET bob/user/_search
{
  "query":{
    "match":{
      "name": "bob"
    }
  },
 "sort": [
   {
     "age": {
       "order": "asc"
     }
   }
 ]
  
}

Elastic search 基础操作_第13张图片

c、分页

Elastic search 基础操作_第14张图片

e、布尔查询

1、must(and):所有的条件都要符合

Elastic search 基础操作_第15张图片
2、should(or):或Elastic search 基础操作_第16张图片

3、must_not(not)

Elastic search 基础操作_第17张图片

5、过滤器 filter

Elastic search 基础操作_第18张图片

多条件

Elastic search 基础操作_第19张图片

6、匹配多个

Elastic search 基础操作_第20张图片
7、精准查询

term查询时直接通过倒排索引指定的词条进行精确查找的

关于分词:
  • term:直接查询精确的
  • match:会只用分词器解析(先分许文档,然后再通过分析的文档进行查询)

Elastic search 基础操作_第21张图片

match

Elastic search 基础操作_第22张图片

两个类型:

standard

Elastic search 基础操作_第23张图片

keyword

[
Elastic search 基础操作_第24张图片8、多个值匹配精确查询

Elastic search 基础操作_第25张图片

10、高亮查询

Elastic search 基础操作_第26张图片

自定义高亮显示格式

Elastic search 基础操作_第27张图片

5、删除数据 delete

DELETE bob/user/1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bdVEqkVp-1592449903587)(/Users/bobwang/Library/Application Support/typora-user-images/image-20200614185150354.png)]
Elastic search 基础操作_第28张图片

你可能感兴趣的:(elasticsearch)