学习总结之一起简单聊聊Elasiticsearch的哪些事

ELK三剑客下载地址:

ElasticSearch: https://mirrors.huaweicloud.com/elasticsearch/?C=N&O=D
logstash: https://mirrors.huaweicloud.com/logstash/?C=N&O=D
kibana: https://mirrors.huaweicloud.com/kibana/?C=N&O=D

 window版本

下载ElasticSearch后解压

进入bin文件夹,双击elasticsearch.bat即可运行

访问127.0.0.1:9200 ,运行成功!

安装elasticsearch可视化前端项目

>下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/

点击连接无反应,需要解决跨域问题

编辑elasiticsearch.yaml文件添加如下配置,解决跨域问题

http.cors.enabled: true #是否支持跨域,默认为false
http.cors.allow-origin: "*" #当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization #跨域允许设置的头信息,默认为X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials: true #是否返回设置的跨域Access-Control-Allow-Credentials头,如果设置为true,那么会返回给客户端
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE #允许跨域的请求方式,默认OPTIONS,HEAD,GET,POST,PUT,DELETE

下载kibana后解压

kibanna官网:Kibana:数据的探索、可视化和分析 | Elastic

注意:

1.kibana的版本必须与elasticsearch的版本一致

2.必须要提前安装node.js

进入bin文件夹,双击kibana.bat即可运行

安装ik分词器插件

下载地址:Releases · infinilabs/analysis-ik · GitHub

注意:版本号需要与elasticsearch版本一致

将压缩包解压到elasticsearch/plugins/新建ik文件中.

Rest风格

创建索引和文档

格式:POST /索引名称/_doc/文档ID
    {
        "key":"value"
    }

例如:

POST /test/_doc/3
{
  "name":"李四",
  "age":34,
  "desc": "请问企鹅呃呃他",
    "tag": [
      "文",
      "额额"
    ]
}

获取文档信息

格式:GET /索引名称/_doc/文档ID
GET /test/_doc/1

修改文档信息

格式: 
POST /索引名称/_update/文档ID
{
   "doc": {
      "key":"value"
    }
}

例如:

POST /test/_update/2
{
   "doc": {
      "name": "张三"
    }
}

删除索引和文档信息

删除文档
    格式: DELETE /索引名称/_doc/文档ID
    DELETE /test/_doc/1

删除索引
    格式:DELETE /索引名称
    DELETE /test

简单的搜索

格式:GET /索引名称/_search?q=key:value
GET /test2/_search?q=name:三

复杂的搜索

复杂的搜索:精确,模糊.分页,高亮,排序

模糊查找

GET /test2/_search
{
  "query": {
    "match": {
      "name" :"三"
    }
  }

结果过滤

GET /test2/_search
{
  "query": {
    "match": {
      "name" :"凌福"
    }
  },
  "_source": ["name","age"]  --结果过滤
}

排序

GET /test2/_search
{
  "query": {
    "match": {
      "name" :"凌福"
    }
  },
  "sort": [   --排序
    {
      "age": {
        "order": "asc"   --asc:升序 desc:降序
      }
    }
  ]
}

分页

GET /test2/_search
{
  "query": {
    "match": {
      "name" :"凌福"
    }
  },
  "from": 0,  --从第一条记录开始
  "size": 2      --每页展示多少条
}

布尔值 多条件查询

must:多个条件都需要满足相当于and

should:满足一个条件即可 相当与于 or

must_not:排除这个条件,相当于 不等于

GET /test2/_search
{
  "query": {
    "bool": {
      "must": [   ---must:多个条件都需要满足相当于and
        {
          "match": {
            "name": "张三"
          }
        },
        {
          "match": {
            "age": 23
          }
        }
      ]
    }
  }
}

范围搜索

gt:大于 gte:大于等于 lt:小于 lte:小于等于

GET /test2/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "王小"
          }
        }
      ],
      "filter": [       --过滤
        {"range": {        --范围查找
          "age": {
            "gt": 20
           
          }
        }}
      ]
    }
  }
}

多条件查询时可以用空格隔开,只要满足其中一个就可以返回,这时可以根据分值进行判断权重

GET /test2/_search
{
  "query": {
   "match": {
     "remake": "反反 维吾尔"
   }
  }
}

高亮查询

GET /test2/_search
{
  "query": {
    "match": {
      "name": "王小"
    }
  },
  "highlight": {        --设置高亮
    "pre_tags": "<p class='txt' style='color:red'>",   --自定义样式
    "post_tags": "</p>",         --结束样式
    "fields": {        --设置高亮的属性
      "name": {}
    }
  }
}

学习时遇到的问题

问题一:运行127.0.0.1:9200,失败提示:received plaintext http traffic on an https channel, closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127.0.0.1:6555}

解决方案:修改elasticsearch.yml 配置文件,然后重启服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值