Kibana搜索小记

本文详细介绍了如何使用Elasticsearch进行数据操作,包括创建索引、插入员工数据、检索特定文档、模糊搜索、精确匹配、高亮显示以及条件查询。通过示例展示了如何根据姓氏和年龄筛选记录,以及如何进行短语匹配。此外,还展示了如何在Elasticsearch中管理映射,添加和删除字段,以及添加和检索文档。
摘要由CSDN通过智能技术生成
# 索引员工(放一个员工数据到ES中),id=1
PUT /megacorp/employee/1
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}
# 同上
PUT /megacorp/employee/2
{
    "first_name" : "John",
    "last_name" :  "Smith",
    "age" :        35,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}
# 检索id为1的人
GET /megacorp/employee/1
# 检索文档,能查出全部
GET /megacorp/employee/_search
# 查姓氏为smith的人,大小写不敏感
GET /megacorp/employee/_search?q=last_name:smith
# 使用查询表达式搜索,等同于上句的效果
GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}
#条件查询,查姓氏为smith,并且年龄大于30的
GET /megacorp/employee/_search?pretty
{
    "query" : {
        "bool": {
            "must": {
                "match" : {
                    "last_name" : "smith" 
                }
            },
            "filter": {
                "range" : {
                    "age" : { "gt" : 30 } 
                }
            }
        }
    }
}
#精确匹配,仅匹配同时包含 “rock” 和 “climbing”,并且二者以短语 “rock climbing” 的形式紧挨着的
GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    }
}
# 高亮搜索
GET /megacorp/employee/_search?pretty
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    },
    "highlight": {
        "fields" : {
            "about" : {}
        }
    }
}

操作映射

#创建索引 --> 数据库
PUT person
#查询索引
GET person
#添加映射
PUT /person/_mapping
{
  "properties":{
    "name":{
      "type":"text"
    },
    "age":{
      "type":"integer"
    }
  }
}

创建索引并添加映射


#创建索引并添加映射(推荐)
PUT /person1
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "integer"
      }
    }
  }
}
#查询映射
GET person1/_mapping

添加字段

#添加字段
PUT /person1/_mapping
{
  "properties": {
    "name": {
      "type": "text"
    },
    "age": {
      "type": "integer"
    }
  }
}

操作文档

•添加文档,指定id

POST /person/_doc/1
{
  "name":"张三",
  "age":18,
  "address":"北京"
}

GET /person/_doc/1

•添加文档,不指定id("_version" : 会变,但是数据量不会变)

#添加文档,不指定id
POST /person1/_doc/
{
  "name":"张三",
  "age":18,
  "address":"北京"
}

#查询所有文档
GET /person/_search

#删除指定id文档
DELETE /person/_doc/1
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值