初始ElasticSearch搜索引擎

初识ElasticSearch-7.6.x搜索引擎


1.ElasticSearch是什么

Elasticsearch是一个用Java语言开发的基于Lucene的搜索服务器。 是一个分布式、RESTful 风格的搜索和数据分析引擎,作为 Elastic Stack 的核心,它集中存储我们的数据。是一种流行的企业级搜索引擎。

2.如何使用ElasticSearch

  • 下载elasticsearch-7.6.1,切换到bin目录执行 elasticsearch.bat 执行文件(注意:此版本最低需要jdk1.8,不要关闭黑窗口),执行完毕后在浏览器输入127.0.0.1:9200后可看到如下界面即启动成功在这里插入图片描述

  • 下载elasticsearch-analysis-ik-7.6.1分词器放到我们的elasticsearch的plugins下即可

  • 下载elasticsearch-head,打开cmd切换到elasticsearch-head的安装目录下执行命令

    npm install
    npm run start
    

    默认情况下,elasticsearch 在端口9200上公开一个http rest API,elasticsearch-head连接到该端口,由于我们在不同端口下进行操作所有需要进行一下CORS跨域。所以我们需要在在elasticsearch 的config目录下找到elasticsearch.yml在尾部加入以下配置。执行完成后在浏览器输入localhost:9100可看到如下页面即启动成功

    http.cors.enabled: true
    http.cors.allow-origin: "*"
    

    在这里插入图片描述

  • 下载Kibana-7.6.1,切换到bin目录下执行bibana.bat,执行完毕后在浏览器输入localhost:5601可看到如下页面即启动成功(more默认是英文的页面,可在config下的kibana.yml中配置 i18n.locale: “zh-CN”在这里插入图片描述

3.使用Kibana测试ElasticSearch的基本API

  1. 测试ik分词器(其中ik_smart为最小切分,ik_max_word为穷尽词库的可能)

    在这里插入图片描述
    在这里插入图片描述

  2. 创建索引

    PUT /user
    
  3. 删除索引

    DELETE /user
    
  4. 获取索引

    GET /user
    
  5. 向索引中插入数据

    PUT /user/_doc/1
    {
      "name": "aaron",
      "age": 18
    }
    
  6. 修改索引中的数据

    POST /user/_doc/1/_update
    {
      "doc": {
         "name": "MrDu",
         "age": 18
      }
    }
    
  7. 获取索引中的数据

    GET /user/_doc/1
    
  8. 删除索引中的数据

    DELETE /user/_doc/1
    

4.使用使用Kibana测试ElasticSearch的复杂查询

  • 条件查询

    GET /user/_doc/_search
    {
      "query": {
        "match": {
          "tags": "技术宅"
        }
      }
    }
    
  • 结果过滤

    GET /user/_doc/_search
    {
      "query": {
        "match": {
          "tags": "技术宅"
        }
      },
       "_source": ["name","tags"]
    }
    
  • 排序搜索

    GET /user/_doc/_search
    {
      "query": {
        "match": {
          "tags": "技术宅"
        }
      },
      "sort": {
        "age": "desc"
      }
    }
    
  • 分页查询

    GET /user/_doc/_search
    {
     "from": 0,
     "size":2,
      "sort": {
        "age": "desc"
      }
    }
    
  • 多条件精确查询 must(所有条件都要符合)

    GET /user/_doc/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match":{
                "name": "Aaron"
              }
            },
            {
              "match":{
                "age":18
              }
            }
            ]
        }
      }
    }
    
    
  • 只要满足条件的都查询出来 should

    GET /user/_doc/_search
    {
      "query": {
        "bool": {
          "should": [
            {
              "match":{
                "name": "Aaron"
              }
            },
            {
              "match":{
                "age":20
              }
            }
            ]
        }
      }
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值