官方文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_retrieving_a_document.html
首先使用kibana、elasticsearch-head连接es服务;
一、在head插件中删除一个es索引
二、关于‘索引’及‘文档’的增删改查
1.创建索引(两种方式)
1.1 创建索引带上一条数据
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
#注意,路径 /megacorp/employee/1 包含了三部分的信息:
megacorp:索引名称
employee:类型名称
1:特定雇员的ID
1.2创建索引不带数据,只是创建索引包含的属性规则
PUT test2
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"desc":{
"type": "keyword"
}
}
}
}
#这里就没有创建数据
2.新增文档数据
PUT /megacorp/employee/2
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}
PUT /megacorp/employee/3
{
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
#注意文档ID不要重复,重复就会覆盖已有的数据
3.简单查询
#GET 请求并指定文档的地址——索引库、类型和ID
GET /megacorp/employee/1
4.轻量搜索
GET /megacorp/employee/_search
#使用 _search 。返回结果包括了所有三个文档,放在数组 hits 中。一个搜索默认返回十条结果
#尝试下搜索姓氏为 ``Smith`` 的雇员
GET /megacorp/employee/_search?q=last_name:Smith
5.使用查询表达式搜索
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"last_name" : "Smith"
}
}
}
6.多条件查询
GET /megacorp/employee/_search
{
"query" : {
"bool": {
"must": {
"match" : {
"last_name" : "smith"
}
},
"filter": {
"range" : {
"age" : { "gt" : 30 }
}
}
}
}
}
#多条件查询,都应该在“bool”:{}中,编写条件规则(如must、filter、排序),最后再最里层写数据字段条件;
上面使用了两个条件:
#首先与我们之前使用的 match 查询 一样。
#再则是一个 range 过滤器 , 它能找到年龄大于 30 的文档,其中 gt 表示_大于_(great than)。
7、全文检索
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"about" : "rock climbing"
}
}
}
#使用之前的 match 查询在`about` 属性上搜索 “rock climbing”
8、短语搜索(与全文检索范围一致,但条件不作拆分)
GET /megacorp/employee/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
}
}
#比全文检索的结果少,这里的match_phrase里面的about值不做拆分
9、高亮搜索
GET /megacorp/employee/_search
{
"query" : {
"match_phrase" : {
"about" : "rock climbing"
}
},
"highlight": {
"fields" : {
"about" : {}
}
}
}
#查询的结果会包含 about 属性匹配的文本片段,并以 HTML 标签 <em></em> 封装