Elasticsearch是一個(gè)建立在全文搜索引擎 Apache Lucene? 基礎(chǔ)上的搜索引擎,功能強(qiáng)大,最近剛好要研究搜索這一塊,簡要記錄備日后查閱
-
安裝Java JDK,由于Lucene是用Java開發(fā)的,所以需要安裝JVM
從JAVA官網(wǎng)下載JDK安裝包,注意,由于后面我們安裝中文分詞插件需要裝maven,所以安裝的必須是JDK包而不是JRE
通過RPM -ivh 命令安裝下好的安裝包
-
編輯配置文件,將安裝好的java路徑加入環(huán)境變量
#vim /etc/profile在里面添加如下內(nèi)容
export JAVA_HOME=/usr/java/your_jdk_directory(修改成對(duì)應(yīng)的路徑) export JAVA_BIN=$JAVA_HOME/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH使配置文件生效
#source /etc/profile 或 #. /etc/profile (也可關(guān)閉終端重新登陸)如果出現(xiàn)以下類似的輸出,證明安裝成功
#java -version java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
-
安裝elasticsearch
從elasticsearch官網(wǎng)下載elasticsearch安裝包
-
將安裝包放于要安裝的目錄,解壓
$unzip elasticsearch-2.3.2.zip -
啟動(dòng)看是否成功,注意不能用root用戶
$bin/elasticsearch
-
安裝Marvel管理插件(選裝)
先從Kibana下載界面下載Kibana
解壓kibana,并修改配置文件,將elasticsearch路徑指向上一步elasticsearch的訪問路徑,默認(rèn)為 http://localhost:9200
-
安裝Marvel
$bin/plugin install license $bin/plugin install marvel-agent $bin/kibana —install elasticsearch/marvel/latest $bin/elasticsearch $bin/kibana
-
安裝中文分詞插件elasticsearch-analysis-ik
若未安裝maven,需要先安裝maven,可通過yum install maven, brew install maven等安裝,也可下載源碼解壓后將bin目錄加入PATH環(huán)境變量安裝
-
從github上下載elasticsearch-analysis-ik源碼, 再通過maven打包,并將打好的包拷貝到plugins/ik目錄下,解壓
$mvn package $cp target/releases/elasticsearch-analysis-ik-{version}.zip to your-es-root/plugins/ik $unzip target/releases/elasticsearch-analysis-ik-{version}.zip $bin/elasticsearch -
簡單驗(yàn)證分詞插件是否安裝成功
新建索引
$curl -XPUT http://localhost:9200/index配置分詞mapping
$curl -XPOST http://localhost:9200/index/fulltext/_mapping -d' { "fulltext": { "_all": { "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "term_vector": "no", "store": "false" }, "properties": { "content": { "type": "string", "store": "no", "term_vector": "with_positions_offsets", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "include_in_all": "true", "boost": 8 } } } }'加入文檔
$curl -XPOST http://localhost:9200/index/fulltext/1 -d'{"content":"美國留給伊拉克的是個(gè)爛攤子嗎"}' $curl -XPOST http://localhost:9200/index/fulltext/2 -d'{"content":"公安部:各地校車將享最高路權(quán)"}'搜索
$curl -XPOST http://localhost:9200/index/fulltext/_search -d' { "query" : { "term" : { "content" : "美國" }}, "highlight" : { "pre_tags" : ["<tag1>", "<tag2>"], "post_tags" : ["</tag1>", "</tag2>"], "fields" : { "content" : {} } } }'如果有搜索結(jié)果,證明中文分詞插件已經(jīng)安裝成功
-
安裝相應(yīng)的客戶端api,如golang客戶端api
go get gopkg.in/olivere/elastic.v3