ElasticSearch 入門(1)

什么是ElasticSearch蝇恶?

  1. ElasticSearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶能力的全文搜索引擎蜈块,基于RESTful web接口陷谱。

  2. Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布鸥昏,是第二流行的企業(yè)搜索引擎塞俱。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索互广,穩(wěn)定敛腌,可靠卧土,快速,安裝使用方便像樊。

安裝

CentOS 6.6
  1. 安裝 Java 環(huán)境
$ yum install java-1.8.0-openjdk.x86_64
  1. 安裝 elasticsearch
 # 當(dāng)前最新版本是 2.2.0尤莺,我們這邊使用 rpm 來安裝
$ wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.2.0/elasticsearch-2.2.0.rpm
$ rpm -ivh elasticsearch-2.2.0.rpm
MacOSX
  1. jdk 可以去官網(wǎng)直接下載然后安裝

  2. 安裝 ElasticSearch

$ bundle install elasticsearch

?配置

如果是 MacOSX 系統(tǒng),則相對比較簡單生棍。由于服務(wù)器使用的是 CentOS 6.6颤霎,因此著重介紹 CentOS 下的配置

安裝成功后,會在 /etc/elasticsearch 生成兩個(gè)配置文件:

  • elasticsearch.yml - Elasticsearch 服務(wù)配置文件
  • logging.yml 日志配置文件

打開 /etc/elasticsearch/elasticsearch.yml涂滴,對文件中的如下項(xiàng)進(jìn)行修改友酱,記得要去掉前面的 #

cluster.name: my-cluster # 集群名稱
node.name: my-node # 節(jié)點(diǎn)名稱

path.data: /xxx/elasticsearch/data # 數(shù)據(jù)存放路徑
path.logs: /xxx/elasticsearch/logs # 日志存放路徑

network.host: 127.0.0.1 # 只允許本機(jī)訪問

修改后,保存柔纵。啟動(dòng) elasticsearch 服務(wù)

service elasticsearch start 

此外缔杉,我們可以把 elasticsearch ?設(shè)置為開機(jī)自啟動(dòng)

$ chkconfig --add elasticsearch

測試

訪問 http://localhost:9200 ,如果出現(xiàn)如下響應(yīng)搁料,則?服務(wù)運(yùn)行成功或详。

bash-4.1# curl -X GET 'http://localhost:9200'
{
  "name" : "my-node",
  "cluster_name" : "my-cluster",
  "version" : {
    "number" : "2.2.0",
    "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe",
    "build_timestamp" : "2016-01-27T13:32:39Z",
    "build_snapshot" : false,
    "lucene_version" : "5.4.1"
  },
  "tagline" : "You Know, for Search"
}

使用

  1. 添加一條記錄
curl -X POST 'http://localhost:9200/tutorial/helloworld/1' -d '{ "message": "Hello World!" }'

返回

{
    _index: "tutorial", 
    _type: "helloworld", 
    _id: "1", 
    _version: 1, 
    _shards: {
        total: 2, 
        successful: 1, 
        failed: 0
    }, 
    created: true
}
  • tutorial is the index of the data in Elasticsearch.
  • helloworld is the type.
  • 1 is the id of our entry under the above index and type.
  1. 通過如下方式獲取實(shí)體的數(shù)據(jù)
curl -X GET 'http://localhost:9200/tutorial/helloworld/1'
  1. 如果要修改已經(jīng)存在的實(shí)體,可以使用 HTTP PUT 請求:
curl -X PUT 'localhost:9200/tutorial/helloworld/1?pretty' -d '{
  "message": "Hello People!"
}'

更新成功后返回:

{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : false
}

其中 _version 會自增(+1)郭计,從 1 變成 2

  1. 刪除存在的實(shí)體
curl -X DELETE 'localhost:9200/tutorial/helloworld/1?pretty'

遇到的問題

  • 錯(cuò)誤1
bash-4.1# service elasticsearch start
Starting elasticsearch: log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /xxx/elasticsearch/logs/my-cluster.log (Permission denied)
    at java.io.FileOutputStream.open0(Native Method)
    at java.io.FileOutputStream.open(FileOutputStream.java:270)

根據(jù) https://discuss.elastic.co/t/elasticsearch-unable-to-start/23824/5的提示

Ok so that will have installed the rpm package for Elasticsearch. It will have created an elasticsearch user on your linux OS and when you start the Elasticsearch service it will be running as the elasticsearch user. The problem you are encountering will be that the elasticsearch user does not have permission to write to /var/log/elasticsearch or the files inside it.

使用 rpm 安裝的話霸琴,會使用 elasticsearch 這個(gè)用戶來運(yùn)行 elasticsearch,因此要修改下 /xxx/elasticsearch 的用戶組

$ chmod -R  elasticsearch /xxx/elasticsearch
  • 錯(cuò)誤2
bash-4.1# service elasticsearch start
Starting elasticsearch:                                    [  OK  ]
bash-4.1# Exception in thread "main" BindTransportException[Failed to bind to [9300-9400]]; nested: ChannelException[Failed to bind to: localhost/35.127.0.0:9400]; nested: BindException[Cannot assign requested address];

/ect/elasticsearch/elasticsearch.yml 里的 localhost -> 127.0.0.1 后

network.host: 127.0.0.1 

重新啟動(dòng)昭伸,不再報(bào)錯(cuò)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梧乘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子庐杨,更是在濱河造成了極大的恐慌选调,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵份,死亡現(xiàn)場離奇詭異学歧,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)各吨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袁铐,“玉大人揭蜒,你說我怎么就攤上這事√藿埃” “怎么了屉更?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長洒缀。 經(jīng)常有香客問我瑰谜,道長欺冀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任萨脑,我火速辦了婚禮隐轩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渤早。我一直安慰自己职车,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布鹊杖。 她就那樣靜靜地躺著悴灵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骂蓖。 梳的紋絲不亂的頭發(fā)上积瞒,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音登下,去河邊找鬼茫孔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛庐船,可吹牛的內(nèi)容都是我干的银酬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼筐钟,長吁一口氣:“原來是場噩夢啊……” “哼揩瞪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起篓冲,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤李破,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后壹将,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗤攻,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年诽俯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妇菱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暴区,死狀恐怖闯团,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仙粱,我是刑警寧澤房交,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站伐割,受9級特大地震影響候味,放射性物質(zhì)發(fā)生泄漏刃唤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一白群、第九天 我趴在偏房一處隱蔽的房頂上張望尚胞。 院中可真熱鬧,春花似錦川抡、人聲如沸辐真。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侍咱。三九已至,卻和暖如春密幔,著一層夾襖步出監(jiān)牢的瞬間楔脯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工胯甩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昧廷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓偎箫,卻偏偏與公主長得像木柬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子淹办,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容