elasticsearch mac下安裝使用 java環境的安裝

官網   https://www.elastic.co/html

安裝java環境java

JAVA如今有8u201與8u202兩個版本,這兩個版本有什麼區別呢?node

這是官方對於奇數版本與偶數版本區別的解釋:git

從JDK版本7u71之後,JAVA將會在同一時間發佈兩個版本的JDK,其中:github

奇數版本爲BUG修正並所有經過檢驗的版本,官方強烈推薦使用這個版本。偶數版本包含了奇數版本全部的內容,以及未被驗證的BUG修復,Oracle官方表示:除非你深受BUG困擾,不然不推薦您使用這個版本。macos

安裝包下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下載對應的macos版本,按步驟安裝便可。
檢查是否安裝成功,命令行輸入:npm

java -version
若輸出對應的java版本號等信息即爲安裝成功。json

2. brew 安裝elasticsearch
命令行輸入:跨域

brew update
brew install elasticsearch
安裝過程遇到問題:瀏覽器

==> Downloading https://artifacts.elastic.co/downloads/elasticsearch/elasticsear
######################################################################## 100.0%
Error: parent directory is world writable but not sticky
Please report this bug:
  https://docs.brew.sh/Troubleshooting
解決方法:

cd /private/
sudo chmod +t /tmp
從新執行命令:

brew install elasticsearch
便可安裝成功。

3. 檢驗
命令行輸入:

cd /usr/local/Cellar/elasticsearch/6.8.0/bin/

elasticsearch

bin/elasticsearch -d 後臺啓動
啓動服務

在瀏覽器輸入:

http://127.0.0.1:9200/
瀏覽器返回以下json文件:

{
  "name" : "4PeKOCX",
  "cluster_name" : "elasticsearch_11111",
  "cluster_uuid" : "RCa4OvqzQ1KRVLiF8NJg0A",
  "version" : {
    "number" : "6.6.1",
    "build_flavor" : "oss",
    "build_type" : "tar",
    "build_hash" : "1fd8f69",
    "build_date" : "2019-02-13T17:10:04.160291Z",
    "build_snapshot" : false,
    "lucene_version" : "7.6.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

 

問題

"status": 406 Content-Type header [text/plain] is not supported

建立索引報錯

請求方式: put

{  
  "title": "My first blog entry",  
  "text":  "Just trying this out...",  
  "date":  "2014/01/01"  
}  

 

返回值

{
    "error": "Content-Type header [text/plain] is not supported",
    "status": 406
}

解決方法:

header 設置錯了,應該是 application/json

若是是用 postman 的話,能夠進入Body,而後選擇 raw JSON(application/json)格式

問題

{
    "query": {
        "filtered": {
            "query": {
                "query_string": {
                    "query": "drama"
                }
            },
            "filter": {
                "term": { "year": 1962 }
            }
        }
    }
}

解決方法:

過濾查詢已被棄用,並在ES 5.0中刪除。如今應該使用bool / must / filter查詢 

{
    "query": {
        "bool": {
            "must": {
                "query_string": {
                    "query": "drama"
                }
            },
            "filter": {
                "term": { "year": 1962 }
            }
        }
    }
}

下載安裝中文分詞插件。這裏使用的是 ik,也能夠考慮其餘插件(好比 smartcn

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

 

安裝elasticsearch-head 插件

  • git clone git://github.com/mobz/elasticsearch-head.git
  • cd elasticsearch-head
  • npm install
  • npm run start

首先訪問node.js官網(https://nodejs.org/en/download/)

點擊下載完後,一路點安裝 就安裝完成了

而後打開-終端-輸入node -v 會返回當前安裝的版本號 npm -v

因爲head插件監聽的端口是9100,而elasticsearch的REST接口的端口是9200,

所以須要設置elasticsearch容許跨域訪問,才能使用head插件,

編輯elasticsearch安裝目錄下的config目錄下的elasticsearch.yml文件,添加以下2行配置:

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

問題:elasticsearch-head 連不上es

解決方法:

而後從新啓動elasticsearch就能夠了。重啓elasticsearch-head

這個時候我發現原來的options請求,已經變成get請求了

分析緣由:

多是由於elasticsearch-head發送請求的時候,跨域了,因此變成options,讓options去發現有什麼能夠請求的方法,而options請求沒有返回結果。

最後上個效果圖吧

相關文章
相關標籤/搜索