ElasticSearch簡易操作指南_第1頁
ElasticSearch簡易操作指南_第2頁
ElasticSearch簡易操作指南_第3頁
ElasticSearch簡易操作指南_第4頁
ElasticSearch簡易操作指南_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Elasticsearch簡樸使用手冊

10Win7系統(tǒng)下安裝ES

1.1ES的J安裝

從官網(wǎng)上下載最新版本口勺ES,本次使用的是版本

網(wǎng)址是

解壓縮,執(zhí)行elasticsearch-5.5.O\bin下面的elasticsearch.bat即可

在瀏覽器中輸入://localhost:9200,出現(xiàn)如下界面表達運行成功

C①localhost:9200

洋應(yīng)用圈百度一下,你就知道

“name”:"EnUc3應(yīng)。

“clustejname":"elasticsearch",

*cluster_uuid*:*brgW3UGT8ypyaFTI1M2Lg**,

“version":{

“number":"5.5.0",

"build-hash":"260387d",

“builLdate":*2017-06-30123:16:05.735Z\

“builLsnapshot”:false,

lucene_version:6.6.0

},

“tagline":"YouKnow,forSearch”

1.2安裝elasticsearch?head插件(非必須)

這個安裝比較復(fù)雜,首先保證當(dāng)?shù)赜嬎銠C安裝有g(shù)it和nodejs,npm

Stepl:將elasticsearch-head從github上面clone下來。詳細操作如下,

gitclonegit://github/mobz/elasticsearch-head.git

Step2:修改elasticsearch-head/Gruntfile.js文獻,增長hostname屬性,

設(shè)置為當(dāng)?shù)赝緩?)或者*(代表任意)

90connect:

91server:{

92options:{

93hostname:

94port:9100,

95base:'.',

96keepalive:true

97}

98

99}

Step3:修改elasticsearch-head/_site/app.js文獻

修改head的連接地址:

this.base_uri=this,config.base_uri|this,prefs,get(,,app-base_uri,/)

||://localhost:9200,,;

把localhost修改成你es日勺服務(wù)器地址,如:

this.base_uri=this,config.base_uri||this,prefs,get(^app-basejjri^)

II〃:9200〃;

Step4:文獻目錄/config/elasticsearch.yml,修改Elaslicsearch的參

數(shù),注意,設(shè)置參數(shù)口勺時候:背面要有空格!

#增長新的參數(shù),這樣head插件可以訪問es

.cors.enabled:true

.cors.allow-origm:〃*“

Step5:安裝grunt,命令如下

npminstall-ggrunt-cli

Step6:在elasticsearch-head目錄下執(zhí)行npminstall下載elasticsearch-

head運行的I依賴包

Step7:運行g(shù)runtserver啟動服務(wù)

E:\Deuelop\elasticsearch-head>gi'untseruer

Running^connect:set'uer°(connect〉task

Waitingfoi?euei?...

Startedconnectwebserueronhttp://:9100

Step8:訪問:〃localhost:9100/,出現(xiàn)如下界面表達安裝成功

0①localhost:91co

:?:應(yīng)月m互度一下,你就知道

Elasticsearchhttp//127001:9200/連接

廄覽案引數(shù)景況覽基本至w[十:聶合叁:旬[+:

里群概覽集群排余^SortIndices▼ViewAliases▼IndexFilter

2.Linux系統(tǒng)下集群布署ES

2.1機器配置

三臺Linux虛擬機,安裝系統(tǒng)CentOS6.5

對應(yīng)靜態(tài)IP分別為28,,

開放9200和9300端口,環(huán)節(jié)如下:

#/sbin/iptables-IINPUT-ptep--dport9200-jACCEPT

#/sbin/iptables-IINPUT-ptep--dport9300-jACCEPT

然后保留:

#/etc/rc.d/init.d/iptablessave

查看打開的端口:

#/etc/init.d/iptablesstatus

2.2安裝環(huán)節(jié)

Stepl:從官網(wǎng)上下載ElasticSearch『、Jtar包,本次使用版本5.5.1。分別上

傳到三臺機器中

Step2:解壓tar包,修改途徑下的elasticsearch,y下配置文獻。重要修改

如下幾種配置項:

#設(shè)置集群的名稱,三臺機器要同樣

:my-application

#設(shè)置各節(jié)點名稱

:node-128

#數(shù)據(jù)存儲的位置

path.data:/home/hous/develop/elasticsearch-daTa/data

#日志存儲的位置

path.logs:/homp/hous/dpvplop/plasticsparch-dara/logs

#內(nèi)存鎖定,即不使用linux中的互換內(nèi)存(sw叩)

bootstrap.memory_lock:true

#檢查與否支持SecComp模式運行,centos6.x不支持

bootstrap.system_call_filter:false

#綁定本機IP地址

#設(shè)置訪問端口

.port:9200

#以單播方式嗅探集群中的機器

discovery.zen.ping.unicast.hosts:["28","29",

"30"]

#防止腦裂(節(jié)點數(shù)/2+1得出)

discovery.zen.minimum_master_nodes:2

#支持跨域

.cons.enabled:true

.cors.allow-origin:

Step3:分別啟動elasticsearch,進入bin途徑下,

運行命令:./elasticsearch

或者后臺啟動命令:./elasticsearch-d

啟動完畢后,可以輸入curl28:9200/_cluster/health?pretty

集群健康狀態(tài),顯示為green表達正常啟動

2.3常見問題

問題一

[WARN][o.e.b.JNANatives]unabletoinstallsyscallfilter:

Java.lang.UnsupportedOperationException:seccompunavailable:requires

kernel3.5+with

CONFlG_SECCOMPandCONFlG_SECCOMP_FlLTERcompiledinatorg.elasticsear

ch.bootstrap.Seccomp.linuxImpl(Seccomp.java:349)^[elasticsearch-

5.5.1.jar:5.5.1]

atorg.elasticsearch.bootstrap.Seccomp.init(Seccomp.java:630)

~[elasticsearch-5.5.1.jar:5.5.1]

原因:報了一大串錯誤,大家不必驚恐,其實只是一種警告,重要是由于你

Linux版本過低導(dǎo)致的I

處理方案:

1、重新安裝新版本的Linux系統(tǒng)

2、警告不影響使用,可以忽視

問題二

ERROR:bootstrapchecksfailed

maxfiledescriptors[4096]forelasticsearchprocesslikelytoolow,increasetoat

least[65536]

原因:無法創(chuàng)立當(dāng)?shù)匚墨I問題,顧客最大可創(chuàng)立文獻數(shù)太小

處理方案:切換到root顧客,編輯limits.conf配置文獻

vi/etc/security/1inits.conf

添加如下內(nèi)容:

*softnofile65536

*hardnofile131072

*softnproc2048

*hardnproc4096

備注:*代表Linux所有顧客名稱(例如hadoop)

保留、退出、重新登錄才可生效

問題三

maxnumberofthreads[1024]foruser[es]likelytoolow,increasetoatleast

[2048]

原因:無法創(chuàng)立當(dāng)?shù)鼐€程問題,顧客最大可創(chuàng)立線程數(shù)太小

處理方案:切換到root顧客,進入limits.d目錄下修改90-nproc.conf配置文獻

vi/etc/security/limits.d/90-nproc.conf

找到如下內(nèi)容:

*softnproc1024

#修改為

*softnproc2048

問題四

maxvirtualmemoryareasvm.max_map_counl[65530]likelyloolow,

increasetoatleast[262144]

原因:最大虛擬內(nèi)存太小

處理方案:切換到root顧客下,修改配置文獻sysctl.conf

vi/etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并執(zhí)行命令:

sysctl-p

然后重新啟動egsticsearch,即可啟動成功

問題五

ElasticSearch啟動找不到主機或路由

原因:ElasticSearch單播配置有問題

處理方案:檢查日asticSearch中日勺配置文獻

viconfig/elasticsearch.yml

找到如下配置:

H

discovery.zen.ping.unicast.hosts:["192.168.**.**:9300z"192.168.**.**:9300

"]

一般狀況下,是這里配置有問題,注意書寫格式

問題六

org.elasticsearch.transport.RemoteTransportException:Failedtodeserialize

exceptionresponsefromstream

原因:日asticSearch節(jié)點之間的jdk版本不一致

處理方案:日asticSearch集群統(tǒng)一jdk環(huán)境

問題七

Unsupportedmajor.minorversion52.0

原因:jdk版本問題太低

處理方案:更換jdk版本,支持

問題八

cannotrunelasticsearchasroot

原因:不能以root顧客啟動ES服務(wù)器。

處理方案:非要以root顧客運行,則配置-Des.insecure.allow.root=true

對于5.X,在config/jvm.options配置文獻中,

添力口?Des.insecure.allow.root=true

問題九

memorylockingrequestedforelasticsearchprocessbutmemoryisnotlocked

處理措施1:HEMconfig/elasticsearch.yml,注釋掉如下內(nèi)容

#bootstrap.memoryjock:true

處理措施2:配置:/etc/security/limits.conf,

*softmemlockunlimited

*hardmemlockunlimited

3.Elasticsearch有關(guān)概念解釋

對比與關(guān)系型數(shù)據(jù)庫,ESH勺多種概念確實不好理解。尤其對“索引”二字更是

與關(guān)系型數(shù)據(jù)庫混淆日勺不行,下面通過與MySQL簡樸對比,加深理解

MySQL|ElasticSearch____________

DatabaseIndex

TableType

RowDocument

ColumnField

SchemaMapping

IndexEverythingisindexed

SQLQueryDSL

SELECT*FROMtable...GEThttp://...

UPDATEtableSET...PUThttp://...

以上表為根據(jù),在ES中的新建文檔(在Index/type下)相稱于mysql中(在

某Database歐JTable)下插入一行數(shù)據(jù)。

4.安裝中文分詞器

1.中文分詞器的安裝

中文分詞器ik詳細安裝環(huán)節(jié)如下

拼音分詞器的安裝環(huán)節(jié)如下

2.java創(chuàng)立索引是添加分詞器

5?有關(guān)字符串的某些闡明

在ES中,字符串口勺類型有兩種,分別是text和keyword。他們口勺區(qū)別是,

text可以進行analyzed分詞操作。keyword不兀以notanalyzed。下圖是對

name字符串日勺屬性闡明

"name":{

"analyzer":"ik_smartn,Bl

"type":"text”,爵

"fields":{.

"keyword":{

"ignore_above":

"type":"keyword"

)

}

1)表達使用ik_smart中文分詞

2)表達字符串類型為text,可以講行分詞

3)ignoreabove是索引『'J范圍,用于not_analyzed字段,默認不會對20字

節(jié)的數(shù)據(jù)索引,假如要存儲超過32766字節(jié)口勺數(shù)據(jù),設(shè)置ignore_above=256就

可以了

4)表達字符串類型為keyword,不可以進行分詞

總體闡明:name是text類型,用ik_smart分詞倒排索引。name,keyword是

keyword類型不可以分詞,存儲超過32766字節(jié)

6?通過CURL操作的簡樸命令

下面以索引名my_index,索引類型my_type為例進行闡明

6.1創(chuàng)立索引

創(chuàng)立一種空索引,索引名為myjndex

curl-XPUT:9200/my_index-d'

()

I

6.2添力口mapping

添加索引類型,包括字段類型

curl-XPUT:9200/my_index/_mapping/my_type-d

(

"properties":{

"name":{

"analyzer":"ik_smart",

"type":"text",

"fields":{

"keyword":{

"ignore_above":256,

"type":"keyword"

}

}

},

"id":{

"type":"long"

},

"age":{

"type":"integer"

},

"desc":{

"analyzer":"ik_smart",

"lype":"LexL",

"fields":{

"keyword":{

"ignore_above":256,

"type":"keyword',

}

)

}

}

}

I

6.3添加文檔數(shù)據(jù)

添加一條文檔數(shù)據(jù)

curl-XPOST:9200/my_index/my_type-d

"id":1,

“name":”張小明“,

"desc“:”java工程師,從事大數(shù)據(jù)軟件開發(fā)”,

"age":23

)

I

批量添加文檔數(shù)據(jù),這種格式類似一種有效日勺單行JSON文檔流,它通過換行符

(\n)連接到一起。注意兩個要點:

?每行一定要以換行符(\n)結(jié)尾,包括最終一行。這些換行符被用作一種

標(biāo)識,可以有效分隔行。

?這些行不能包括未轉(zhuǎn)義口勺換行符,由于他們將會對解析導(dǎo)致干擾。

curl-XPOST:9200/_bulk-d'

("index":{".index":"my_index","_type":"my_type"}}

{”+':5,”血限”:“張三豐”,“(^5(:“:!”3工程師,從事大數(shù)據(jù)軟件開發(fā),對nosql數(shù)據(jù)庫

有研究“age”:123}

{"index":{"_index":"my_index","_type":"my_type"}}

{"id":2/'name":"jack","desc":"php工程師,從事網(wǎng)站開發(fā),對java也有一定理解

"/'age":30)

{"index":{"_index":"my_index","_type":"my_type")}

{“id“:3Jname“:“李曉紅,“desc":”前端工程師,對react,angularjs有研究

","age":22)

("index":<"-index":"my_index","_type":"my_type"}}

{"id":4/'name":“王曉燕”,“desc":"UI設(shè)計師,目前處在實現(xiàn)階段“,“age”:19)

{"index":{"_index":"my_index"J"_type":"my_type")>

{"id":6j"name":"jannes","desc":"數(shù)據(jù)庫工程師,對oracle和mysql有一定的經(jīng)驗

"/'age":35}

6.4刪除文檔數(shù)據(jù)

刪除一條文檔數(shù)據(jù)

curl-XDELETE:9200/my_index/my_type/AV3E0qBK9W2J9WuRt8D3

刪除多條文檔數(shù)據(jù)

curl-XPOST:9200/_bulk-d'

{"delete":{"_index":"my_index",”_type”:"my_type",

"AV3E0qBK9W239WuRt8D4"}}

("delete":{"_index":"my_index","_type-:"my.type",",id

"AV3E0qBK9W2J9WuRt8D5"}}

{"delete":("-index":"my_index'\".type":"my_type",

"AV3E0qBK9W239WuRt8D6")}

{"delete":{"_index":"my_index","_type":"?ny"type","_id":

"AV3E0qBK9W239WuRt8D7"}}

{"delete":{"_index":"my^ndex","_type":"my_type","_id":

"AV3BQz3x35KYRov53oNA"}}

6.5查詢文檔數(shù)據(jù)

wildcard通配符查詢

curl-XGET28:9200/my_index8/my_type8/_search-d

query":{

"wildcard":{

"name.keyword":"張*"

}

}

}

term精確杳詢

curl-XGET28:9200/my_index8/my_type8/_search-d'

{

"query":{

"term":{

"desc":“工程師”

}

}

)

terms查找多種精確值

curl-XGET28:9200/my_index8/my_type8/_search-d'

query":{

"terms":{

age":[22,23]

}

}

}

range范圍查詢

range查詢可同步提供包括(inclusive)和不包括(exclusive)這兩種范圍體現(xiàn)

式,可供組合的選項如下:

gt:>不小于(greaterthan)

It:<不不小于(lessthan)

gte:>=不小于或等于(greaterthanorequalto)

Ite:<=不不小于或等于(lessthanorequalto)

curl-XGET28:9200/my_index8/my_type8/_search-d'

"query":{

"constant_score":{

"filter":{

"range":{

"age":{

"gte":20,

"It":40

)

}

)

)

)

)

;3m

exists查詢和notexists(嘀self均■查詢過時被刪除)(nullandnotnull)

curl-XGET28:9200/my_index8/my_type8/_search-d'

"query":{

"exists":{"field":"desc"}

}

}

I

curl-XGET28:9200/my_index8/my_type8/_search-d

{

"query":{

"bool":{

"must_not":{

"exists":{

"field":"desc"

}

)

)

)

}

:I'M

BoolQuery組合查詢

bool杳詢由如下元素構(gòu)成,分別是must,filter,should,musjnot

must:所有的語句都必須(must)匹配,與AND等價

musjnot:所有的)語句都不能(mustnot)匹配,與NOT等價

should:至少有一種語句要匹配,與OR等價

filter:過濾器查詢,忽視score

boost增長有關(guān)度評分比重_score,minimum_should_match

POST_search

{

"query":{

"bool":{

"must":{

"term":{"user":"kimchy"}

},

"filter":{

"term":{"tag":"tech"}

},

"must_not":{

"range":{

"age":{"gte":10,"Ite":20}

}

},

"should":[

{"term":{"tag":"wow"}},

{"term":{"tag":"elasticsearch"}}

"minimum_should_match":1,

"boo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論