elasticsearch搭建与使用(原创)
1.概述
Elastic Search 是一个基于Lucene构建的开源,分布式搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引
2 、环境介绍与安装准备
1、环境说明
MAC OS X 10.10.95
2、安装准备
ElasticSearch(简称ES)由java语言实现,运行环境依赖java。ES 1.x版本,官方推荐至少使用jdk1.7及以上的环境,建议使用Oracle java,可以去官网下载,本文使用http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 。ES可以去官网下载,也可以这里https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.1.0/elasticsearch-2.1.0.zip ,本文使用elasticsearch-2.1.0.zip。
3、安装
1、安装JAVA
关于Java的安装,请参照这里 http://www.ifunmac.com/2013/04/mac-jdk-7/
2、安装ES
以目前最新的elasticsearch-2.1.0.zip为例,将zip文件解压到指定目录:/usr/local,解压开来后为三个目录:bin、config、lib及三个文本文件。三个文本文件我们可以不用管。
进入:
cd /usr/local/elasticsearch-2.1.0/bin
运行如下命令即可启动elasticsearch
./elasticsearch
上面的启动命令将使得elasticsearch进程在后端运行,如果想使其在前端运行,这样可以看到服务启动时的打印信息,那么我们可以运行如下命令即可:
./elasticsearch –f
如果我们使用
ps aux | grep elasticsearch
会发现分配给elasticsearch的最小与最大内存为:
-Xms256m -Xmx1g,我们可以通过以下的命令来指定分给elasticsearch的最大与最小内存:
./elasticsearch -f -Xmx2g -Xms2g -Des.index.storage.type=memory
通常分配的最大与最小内存大小相等为最好。
如果是采用加-f的命令启动服务,则在当前界面可以按Ctrl+C关掉服务。
Elasticsearch启动后,我们可以通过访问如下url在前端查询该服务是否启动成功:
http://localhost:9200/
{
"name" : "Ghost Girl",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.1.0",
"build_hash" : "72cd1f1a3eee09505e036106146dc1949dc5dc87",
"build_timestamp" : "2015-11-18T22:40:03Z",
"build_snapshot" : false,
"lucene_version" : "5.3.1"
},
"tagline" : "You Know, for Search"
}
启动成功!
9200是http访问端口,还有一个端口是9300,是各节点间彼此通信的端口。
PS. 配置文件
通过config/elasticsearch.yml设置cluster.name和node.name ,详细请查看: http://www.zihou.me/html/2014/01/17/9061.html
4、安装apache-maven
1. 配置Maven需要检查下Java环境变量的设置。需要检查JAVA_HOME环境变量以及Java命令
在终端输入查看java版本:
java -version
如果显示版本就说明安装好了.
在MAC上查找和设置$JAVA_HOME
#输入命令查看java home变量是否设置:
echo $JAVA_HOME
另外可以使用-V选项列出所有版本的JAVA_HOME:
/usr/libexec/java_home -V
配置JAVA_HOME:
1,打开 应用程序 -> 实用工具 -> 终端;
2,在终端中定位到自己用户的主目录,输入: cd ~ ;
3,创建一个空文件,输入:touch .bash_profile ;
4,编辑这个文件,输入:open .bash_profile ;
5,在这个文件中输入:export PATH=${PATH}:<文件目录> ;(将"<文件目录>"替换成自己想要的目录)export PATH=${PATH}:/Users/rye/android/android-sdk-mac_x86/tools;
6,如果需要添加其他的环境变量例如JAVA_HOME,可以输入:export JAVA_HOME=/Library/Java/Home ;
7,source .bash_profile重启终端,测试。
注意:
根据苹果的官方说明,Mac OS X 10.5 及以后的版本应该使用 /usr/libexec/java_home 命令来确定 JAVA_HOME ,而在此之前的版本由于没有这个命令,则应该使用固定的 /Library/Java/Home 目录。
最佳方式是:
export JAVA_HOME=`/usr/libexec/java_home`
另外,你还可以这样用,来选择不同的Java版本:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
or
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
2.接着到http://maven.apache.org/download.html下载Maven安装文件,如apache-maven-3.3.9-bin.zip,然后解压到:/usr/local/目录
接下来,我们需要设置M2_HOME(IntelliJ默认为M2_HOME)环境变量指向apache-maven-3.3.9,并且把Maven安装目录下的bin/文件夹添加到系统环境变量PATH中去:
vim打开/Users/gaoaifei/.bash_profile文件 加入如下代码:
export MAVEN_HOME=/Users/gaoaifei/apache-maven-3.3.9
export PATH=$PATH:$MAVEN_HOME/bin
至此,安装完成,我们可以运行以下命令检查Maven安装:
echo $MAVEN_HOME
mvn –version
5、下载中分文词库
下载:https://github.com/medcl/elasticsearch-analysis-mmseg
解压: tar xvf elasticsearch-analysis-mmseg**gz
cd elasticsearch-analysis-mmseg
mvn package 编译打包
编译完成,会在elasticsearch-analysis-mmseg文件夹目录下生成一个target文件夹,
/Users/gaoaifei/Downloads/elasticsearch-analysis-mmseg-master/target/releases
下会有个编译好的zip压缩包
elasticsearch-analysis-mmseg-1.6.0.zip
配置中文搜索
1.进入elasticsearch目录:/Users/gaoaifei/Downloads/elasticsearch-2.1.0 执行./bin/plubin install 或者手动生成plugins文件夹
2. 生成完成,在plugins文件夹下新建:mkdir analysis-mmseg
3.将编译好的elasticsearch-analysis-mmseg目录下的打包文件
/Users/gaoaifei/Downloads/elasticsearch-analysis-mmseg-master/target/releases/elasticsearch-analysis-mmseg-1.6.0.zip
解压并拷贝到elasticsearch的plugins目录下
4.编辑elasticsearch配置文件,进行简单配置:
sudo vi /Users/gaoaifei/Downloads/elasticsearch-2.1.0/config/elasticsearch.yml
复制这段代码到此文件下:
index:
analysis:
analyzer:
mmseg_maxword:
type: custom
filter:
- lowercase
tokenizer: mmseg_maxword
mmseg_maxword_with_cut_letter_digi:
type: custom
filter:
- lowercase
- cut_letter_digit
tokenizer: mmseg_maxword
:wq!保存退出
6.启动搜索引擎服务 ,进入
/Users/gaoaifei/Downloads/elasticsearch-2.1.0/bin
重启服务:
./elasticsearch
7、创建索引,参考资料:
https://github.com/medcl/elasticsearch-analysis-mmseg