ElasticSearch(二)在线Kibana操作

使用Kibana可视化工具实现对ElasticSearch的使用:

  • 创建一个没有结构的索引

PUT /student/

  • 为原有的空结构索引添加结构

PUT /student/_mapping
{
  "properties": {
      "id":{
        "type": "integer"
      },
      "name":{
        "type": "text"
      },
      "desc":{
        "type": "text"
      }
    }
}

  • 创建一个有结构的索引

PUT /student
{
  "mappings": {
    "properties": {
      "id":{
        "type": "integer"
      },
      "name":{
        "type": "text"
      },
      "desc":{
        "type": "text"
      }
    }
  }
}

  • 删除索引

DELETE /student

  • 新增文档 / 更新文档(对已存在的文档添加就是更新)

添加新的文档逻辑

POST /student/_doc/1
{
  "id":1,
  "name":"美羊羊",
  "desc":"美羊羊喜欢喜羊羊"
}

POST /student/_doc/2
{
  "id":2,
  "name":"喜羊羊",
  "desc":"喜羊羊喜欢蓝色的铃铛"
}
修改存在文档的逻辑

POST /student/_doc/1
{
  "id":1,
  "name":"美羊羊",
  "desc":"美羊羊喜欢喜羊羊,美羊羊不喜欢沸羊羊"
}

  • 查询所有的文档

GET /student/_search
{
  "query": {
    "match_all": {}
  }
}

  • 根据文档ID查询文档数据

GET /student/_doc/1

  • 根据文档ID删除文档信息

DELETE /student/_doc/1

  • 根据文档ID批量查询文档信息

GET /student/_mget
{
  "docs":[
    {"_id":1},
    {"_id":2}
  ]
}

  • 修改文档部分字段(避免出现对所有的字段都需要进行修改的改动)

POST /student/_doc/1/_update
{
  "doc":{
    "desc":"美羊羊喜欢喜羊羊,美羊羊不喜欢沸羊羊,绿茶女"
  }
}

  • 分词器的操作

在ElasticSearch中的分词器主要分为四种:
  1. 默认的分词器:standard analyzer
  2. ik分词器:analysis-ik
  3. 拼音分词器:analysis-pinyin
  4. 自定义分词器
分词器的安装方法很简单,就是按照ElasticSearch的版本找到对应版本的分词器,将其解压到es中的plugins问价夹中。

将其各自解压到对应的自己创建的文件夹中。
  • 默认分词器的使用
GET /_analyze
{
  "text": "我是一个中国人",
  "analyzer": "standard analyzer"
}
分词的结果是:一字一词。
  • ik分词器的使用
GET /_analyze
{
  "text": "我是一个中国人",
  "analyzer": "ik_smart"
}
GET /_analyze
{
  "text": "我是一个中国人",
  "analyzer": "ik_max_word"
}
  • 拼音分词器
GET /_analyze
{
  "text": "我是一个中国人",
  "analyzer": "pinyin"
}

既然学习了分词器的使用,那么对其文档的搜索操作可以进一步的测试

  • 创建索引

PUT /students
{
  "mappings": {
    "properties": {
      "id":{
        "type": "integer",
        "index": true
      },
      "name":{
        "type": "text",
        "store": true,
        "index": true,
        "analyzer": "ik_smart"
      },
      "info":{
        "type": "text",
        "store": true,
        "index": true,
        "analyzer": "ik_smart"
      }
    }
  }
}

  • 添加文档数据

POST /students/_doc/1
{
  "id":1,
  "name":"百战程序员",
  "info":"I love baizhan"
}

POST /students/_doc/2
{
  "id":2,
  "name":"美羊羊",
  "info":"美羊羊是羊村最漂亮的人"
}

POST /students/_doc/3
{
  "id":3,
  "name":"懒羊羊",
  "info":"懒羊羊的成绩不是很好"
}

POST /students/_doc/4
{
  "id":4,
  "name":"小灰灰",
  "info":"小灰灰的年纪比较小"
}

POST /students/_doc/5
{
  "id":5,
  "name":"沸羊羊",
  "info":"沸羊羊喜欢美羊羊"
}

POST /students/_doc/6
{
  "id":6,
  "name":"灰太狼",
  "info":"灰太狼是小灰灰的父亲,每次都会说我一定会回来的"
}

  • 查询所有的文档信息

GET /students/_search
{
  "query": {
    "match_all": {}
  }
}

  • 文档搜索-根据域条件进行匹配

GET /students/_search
{
  "query": {
    "match": {
      "info": "美羊羊"
    }
  }
}

  • 文档查询-范围查询

GET /students/_search
{
  "query": {
    "range": {
      "id": {
        "gte": 1,
        "lte": 3
      }
    }
  }
}

  • 文档查询-短语检索

GET /students/_search
{
  "query": {
    "match_phrase": {
      "info": "美羊羊"
    }
  }
}

  • 文档查询-单词 / 词组搜索

GET /students/_search
{
  "query": {
    "term": {
      "info": {
        "value": "美"
      }
    }
  }
}

  • 文档搜索-结果排序

GET /students/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "id": {
        "order": "desc"
      }
    }
  ]
}

  • 文档搜索-分页查询

GET /students/_search
{
  "query": {
    "match_phrase": {
      "info": "美羊羊"
    }
  },
  "from": 0,
  "size": 2
}

  • 文档搜索-高亮查询

GET /students/_search
{
  "query": {
    "match_phrase": {
      "info": "美羊羊"
    }
  },
  "highlight": {
    "fields": {
      "info": {
        "fragment_size": 20,
        "number_of_fragments": 5
      }
    },
    "pre_tags": ["<em style='color:red;'>"],
    "post_tags": ["</em>"]
  }
}

全部评论

相关推荐

牛客263158796号:我领羊一面后十天不挂也不推进 今天问hr说等前序的第一批意向发完看情况再看是否推进
点赞 评论 收藏
分享
11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务