官網 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" }
問題
建立索引報錯
請求方式: 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請求沒有返回結果。
最後上個效果圖吧