最近实验室准备TREC的比赛需要用到文本检索工具,师兄列出了如下几个常用的检索工具,并让我重点了解一下ElasticSearch.
1.Elastic Search
2.Lvcene
3.Terrier
4.BM25
下面将安装ElasticSearch的过程记录一下,方便以后查询。
我的linux版本是 Ubuntu 18.04.2,Elastic需要JAVA环境,由于是新装的系统没有安装JAVA,因此首先要安装JAVA。
安装JAVA环境:
#1.Installing the Default JRE/JDK
sudo apt update #update the package index
java -version #check if Java is already installed:
sudo apt install default-jre # install OpenJDK
sudo apt install default-jdk
#2.Installing Specific Versions of OpenJDK
#我装的是OpenJDK 8,命令如下
sudo apt install openjdk-8-jdk
#3.设置环境变量(重要)
sudo update-alternatives --config java #查询路径
vim /etc/environment #打开environment文件
将JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/" 添加到文件中 #引号中的内容替换为 sudo update-alternatives --config java命令显示的路径
source /etc/environment #让刚刚添加的环境变量生效
echo $JAVA_HOME #查看环境变量是否已经生效
要重点提一下的是,JAVA安装好之后设置环境变量这一步特别重要,在environment文件中写入JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/"时,等号两边不能有空格。(我装的时候这个问题困扰了好一会儿)
安装Elastic:
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
$ unzip elasticsearch-5.5.1.zip
$ cd elasticsearch-5.5.1/
我昨天晚上下载elasticsearch-5.5.1.zip的时候速度很慢,只有几kb/s,最后也没有下载成功,今天上午没一会儿就下载好了,建议白天上午下载。
接着,进入解压后的目录,运行下面的命令,启动 Elastic。
$ ./bin/elasticsearch
参考教程说如果这时报错"max virtual memory areas vm.maxmapcount [65530] is too low",要运行下面的命令。
$ sudo sysctl -w vm.max_map_count=262144
我安装的时候没有出现这个问题,但是出现了其他问题,原因是运行elasticsearch的时候不能用rooot账号,要切换为非root账号,并且要将添加,切换后的用户对elasticsearch文件所在目录的权限。
如果一切正常,Elastic 就会在默认的9200端口运行。这时,打开另一个命令行窗口,请求该端口,会得到说明信息。
$ curl localhost:9200
{
"name" : "atntrTf",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "tf9250XhQ6ee4h7YI11anA",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
如果显示上面的JOSN则说明我们的Elastic 安装成功了。
参考链接:
JAVA环境安装:https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-18-04
Elastic 安装:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html