最近實驗室準備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