Elasticsearch學習上手(一)

Elasticsearch是一個基於Apache Lucene(TM)的開源搜索引擎。一開始公司裏一位同事是直接採用Luncene進行開發的,總體開發下來,代碼量大,比較複雜,我就想要尋求一種更好的開發,更好維護的框架,而後發現了elasticsearch。
Elasticsearch的目的是經過簡單的RESTful API來隱藏Lucene的複雜性,從而讓全文搜索變得簡單。java

不過,Elasticsearch不單單是Lucene和全文搜索,咱們還能這樣去描述它:
分佈式的實時文件存儲,每一個字段都被索引並可被搜索
分佈式的實時分析搜索引擎
能夠擴展到上百臺服務器,處理PB級結構化或非結構化數據node

並且,全部的這些功能被集成到一個服務裏面,你的應用能夠經過簡單的RESTful API、各類語言的客戶端甚至命令行與之交互。
上手Elasticsearch很是容易。它提供了許多合理的缺省值,並對初學者隱藏了複雜的搜索引擎理論。它開箱即用(安裝便可使用),只需不多的學習既可在生產環境中使用。git

Elasticsearch對系統的要求就是安裝對應版本的java,elasticsearch2.x要求java1.7+,最新版5.x要求java1.8+
elasticsearch.org/download選擇版本下載,解壓便可。github

[root@cc ~]# wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-2.4.0.tar.gz
[root@cc ~]# tar -xvf elasticsearch.tar.gz

解壓以後,能夠直接經過命令進行啓動apache

./bin/elasticsearch

ps:elasticsearch5.x這邊可能會碰到啓動不成功的問題,由於5.x開始會有一個jvm的配置文件jvm.options,這邊默認jvm內存爲4Gnpm

以後能夠經過瀏覽器或者在另外一個窗口進行測試 :http://localhost:9200/?pretty
若有相似如下返回則說明成功了:api

{
    "cluster_name": "elasticsearch",
    "name": "node-1",
    "tagline": "You Know, for Search",
    "version": {
        "build_hash": "ce9f0c7394dee074091dd1bc4e9469251181fc55",
        "build_snapshot": false,
        "build_timestamp": "2016-08-29T09:14:17Z",
        "lucene_version": "5.5.2",
        "number": "2.4.0"
    }
}

單純經過api很不直觀,幸虧elasticsearch提供了插件的安裝,我這邊安裝elasticsearch-head插件
對於2.x版本能夠直接經過如下命令進行安裝瀏覽器

./bin/plugin install mobz/elasticsearch-head

而後訪問 http://localhost:9200/_plugin...就能夠看到相似一下界面bash

Paste_Image.png
就能夠在此界面上進行數據的管理了服務器

對於5.x版本以後,elasticsearch-head則能夠須要以一個獨立的node項目運行

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
grunt server

而後訪問http:// localhost:9100 /就能夠了
在這個版本下,須要在elasticsearch.yml中進行配置才能讓head進行鏈接
我這邊的配置是這樣的:

http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/
相關文章
相關標籤/搜索