Elasticsearch中文搜索环境搭建
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅
-
安装Java JDK,由于Lucene是用Java开发的,所以需要安装JVM
-
从JAVA官网下载JDK安装包,注意,由于后面我们安装中文分词插件需要装maven,所以安装的必须是JDK包而不是JRE
-
通过RPM -ivh 命令安装下好的安装包
-
编辑配置文件,将安装好的java路径加入环境变量
vim /etc/profile
在里面添加如下内容
export JAVA_HOME=/usr/java/your_jdk_directory(修改成对应的路径)
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 (也可关闭终端重新登陆)
如果出现以下类似的输出,证明安装成功
#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官网下载elasticsearch安装包
-
将安装包放于要安装的目录,解压
$unzip elasticsearch-2.3.2.zip
-
启动看是否成功,注意不能用root用户
$bin/elasticsearch
-
-
安装Marvel管理插件(选装)
-
先从Kibana下载界面下载Kibana
-
解压kibana,并修改配置文件,将elasticsearch路径指向上一步elasticsearch的访问路径,默认为 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环境变量安装
-
从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 -
简单验证分词插件是否安装成功
新建索引
$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":"美国留给伊拉克的是个烂摊子吗"}'
$curl -XPOST http://localhost:9200/index/fulltext/2 -d'{"content":"公安部:各地校车将享最高路权"}'搜索
$curl -XPOST http://localhost:9200/index/fulltext/_search -d'
{
"query" : { "term" : { "content" : "美国" }},
"highlight" : {
"pre_tags" : ["", " ", ""],"],
"post_tags" : ["
"fields" : {
"content" : {}
}
}
}'如果有搜索结果,证明中文分词插件已经安装成功
-
-
安装相应的客户端api,如golang客户端api
go get gopkg.in/olivere/elastic.v3

浙公网安备 33010602011771号