Elasticsearch(windows)使用入門

tututyl發表於2020-12-17

Elasticsearch簡介

Elasticsearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。Elasticsearch用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。官方客戶端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和許多其他語言中都是可用的。根據DB-Engines的排名顯示,Elasticsearch是最受歡迎的企業搜尋引擎,其次是Apache Solr,也是基於Lucene。

Elasticsearch+kibana+head+ik安裝

ELASTIC (ELK) STACK = Elasticsearch+kibana
由於當前7.10.1需要jdk版本需要11以上原因(正常elk安裝都需要jdk8以上),所以我們elk選擇7.6.1版本
Elasticsearch+kibana是官方提供的 版本使用 elasticsearch-7.6.1和kibana-7.6.1
head是github上的專案 版本使用 elasticsearch-head-5.0.0
ik(分詞器)是github上的專案 版本使用 elasticsearch-analysis-ik-7.6.1

Elasticsearch安裝

elk安裝官方教程:官方教程

  1. 下載
    通過官方網址 連結: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-windows-x86_64.zip

  2. 安裝
    解壓安裝包在這裡插入圖片描述

  3. 執行
    開啟 \elasticsearch-7.6.1\bin\elasticsearch.bat
    elasticsearch執行截圖

kibana安裝

  1. 下載
    通過官方網址 連結: https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-windows-x86_64.zip

  2. 安裝
    解壓安裝包在這裡插入圖片描述

  3. 執行
    開啟\kibana-7.6.1-windows-x86_64\bin\kibana.bat
    kibana執行截圖
    執行地址:http://localhost:5601/kibana執行網站

elasticsearch-head安裝

  1. 下載
    通過github網址 連結: https://github.com/mobz/elasticsearch-head/releases/tag/v5.0.0

  2. 安裝
    解壓
    elasticsearch-head資料夾

  3. 執行
    github文件說明了執行下列指令:

npm install
npm start

github文件
elasticsearch-head的github文件
執行截圖:elasticsearch-head執行截圖
執行地址:http://localhost:9100/
elasticsearch-head執行網址

elasticsearch-analysis-ik安裝

  1. 下載
    通過github網址 連結: https://github.com/medcl/elasticsearch-analysis-ik

  2. 安裝
    解壓
    ik分詞器資料夾
    將上面的資料夾複製進elasticsearch的目錄下plugins資料夾裡(為elasticsearch安裝外掛)
    elasticsearch目錄
    具體目錄為:\elasticsearch-7.6.1\plugins\elasticsearch-analysis-ik-7.6.1
    實現截圖:
    elasticsearch-analysis-ik-7.6.1實現截圖

  3. 執行
    隨著elasticsearch啟動會自動啟動
    ik分詞器執行截圖

elasticsearch語法入門

elasticsearch可以利用restful風格,通過kibana、postman等工具進行編輯內容

通過kibana進行操作:

編輯器入口
dev Tools:編輯器

語法說明

es和關係型資料庫的類似之處
在這裡插入圖片描述

  1. 增加索引(tyl)
    訪問 http://localhost:9100/
    點選索引-新建索引
    增加索引
  2. 增加索引內容
    訪問http://localhost:5601/
    通過dev tools進行操作
    執行下面的資料,把測試資料放進資料庫

PUT /tyl/user/1
{
  "name":"趙甲一",
  "score":100,
  "height":172,
  "hamsome":true
}

POST /tyl/user/2
{
  "name":"錢甲二",
  "score":98,
  "height":160
}

PUT /tyl/user/3
{
  "name":"孫三乙",
  "score":98,
  "height":173,
  "hamsome":true
}

PUT /tyl/user/4
{
  "name":"李乙四",
  "score":98,
  "height":171,
  "hamsome":false
}

如果是建立

結果:

{
  "_index" : "tyl",
  "_type" : "user",
  "_id" : "4",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 5
}

如果是修改(result為updated version會+1 )

結果:

{
  "_index" : "tyl",
  "_type" : "user",
  "_id" : "4",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 5
}

  1. 查詢索引所有內容
    說明:訪問_search的意思是對資料庫進行搜尋,在api的

操作:

GET /tyl/user/_search
{
 "query": {
   "match_all": {}
 }
}

結果:

#! Deprecation: [types removal] Specifying types in search requests is deprecated.
{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 4,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "tyl",
        "_type" : "user",
        "_id" : "3",
        "_score" : 1.0,
        "_source" : {
          "name" : "孫三乙",
          "score" : 98,
          "height" : 173,
          "hamsome" : true
        }
      },
      {
        "_index" : "tyl",
        "_type" : "user",
        "_id" : "4",
        "_score" : 1.0,
        "_source" : {
          "name" : "李乙四",
          "score" : 98,
          "height" : 171,
          "hamsome" : false
        }
      },
      {
        "_index" : "tyl",
        "_type" : "user",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "name" : "錢甲二",
          "score" : 98,
          "height" : 160
        }
      },
      {
        "_index" : "tyl",
        "_type" : "user",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "name" : "趙甲一",
          "score" : 100,
          "height" : 172,
          "hamsome" : true
        }
      }
    ]
  }
}
  1. 條件查詢

操作:

GET /tyl/user/_search
{
  "query": {
    "match": {
      "name": "四"
    }
  }
}

結果:

#! Deprecation: [types removal] Specifying types in search requests is deprecated.
{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 0.2876821,
    "hits" : [
      {
        "_index" : "tyl",
        "_type" : "user",
        "_id" : "4",
        "_score" : 0.2876821,
        "_source" : {
          "name" : "李乙四",
          "score" : 98,
          "height" : 171,
          "hamsome" : false
        }
      }
    ]
  }
}

相關文章