猴哥讲故事

用故事的方式学习技术

Centos7下安装Solr服务和Solr基本用法

Requirements

1
2
3
4
root@pts/6 $ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

refer to solr system requirements

Installation solr

这篇主要是以单实例Solr为说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# download new version 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.3.0/solr-6.3.0.zip

# init directory about solr
# separate installation folder and data folder
mkdir /TestDisk/solrtest/{installation,data}

# installation
root@pts/6 $ solr-6.3.0/bin/install_solr_service.sh solr-6.3.0.zip \
-d /TestDisk/solrtest/data/ -i /TestDisk/solrtest/installation \
-p 8985 -s lcsolr

Extracting solr-6.3.0.zip to /TestDisk/solrtest/installation


Installing symlink /TestDisk/solrtest/installation/lcsolr -> /TestDisk/solrtest/installation/solr-6.3.0 ...


Installing /etc/init.d/lcsolr script ...


Installing /etc/default/lcsolr.in.sh ...

Service lcsolr installed.
Customize Solr startup configuration in /etc/default/lcsolr.in.sh
Waiting up to 180 seconds to see Solr running on port 8985 [\]
Started Solr server on port 8985 (pid=17625). Happy searching!


Found 1 Solr nodes:

Solr process 17625 running on port 8985
{
"solr_home":"/TestDisk/solrtest/data/data",
"version":"6.3.0 a66a44513ee8191e25b477372094bfa846450316 - shalin - 2016-11-02 19:52:42",
"startTime":"2016-12-26T11:35:08.023Z",
"uptime":"0 days, 0 hours, 0 minutes, 8 seconds",
"memory":"84 MB (%17.1) of 490.7 MB"}

install_solr_service.sh 参数说明:

安装脚本自身必须是root运行才行

  • -d solr数据数据目录,比如存放logs,pid文件,core目录等等。默认在/var/solr
  • -i solr程序安装目录,默认在/opt。安装目录必须先创建好。
  • -p 执行solr绑定的端口,默认是8983端口。
  • -s solr服务的名称,默认是solr。可以指定别的,比如上面的 lcsolr
  • -u solr服务运行或者solr文件拥有者的用户,默认是solr。也只可以指定别的,如果指定的不存在怎会先创建相关用户
  • -n solr安装完毕之后不启动solr服务

如果对于安装的时候参数不熟悉导致的Joke就像 这个错误

solr实际启动之后的主界面如图

solr-index-page.png

Solr basic usage

create core

创建Core的时候建议用命令行来创建,这样会更方便。

因为web界面创建Core,默认要求 installdirdatadir 要必须先存在,而且 要求 solrconfig.xml也必须能被找到。

语法:

## 因为我使用了不用的端口,所以这里加上-p
bin/solr create -c james [-p 8985] 

举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
root@pts/6 $ su - solr -c '/TestDisk/solrtest/installation/lcsolr/bin/solr create -c james -p 8985'

Copying configuration to new core instance directory:
/TestDisk/solrtest/data/data/james

Creating new core 'james' using command:
http://localhost:8985/solr/admin/cores?action=CREATE&name=james&instanceDir=james

{
"responseHeader":{
"status":0,
"QTime":2119},
"core":"james"}

结果如下:
solr-core.png

core详情页
solr-core-index.png

下面的例子只给出具体的命令,不做截图展示

另外给出来的URL可以在浏览器中执行,也可以在命令行用如下的方式

curl certain-url

select from core

http://192.168.100.2:8985/solr/james/select?q=id:2031961177&wt=json&indent=true

delete one record from core

http://192.168.100.2:8985/solr/james/update/?stream.body=<delete><id>2031961722</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

truncate core

http://192.168.100.2:8985/solr/james/update/?stream.body=<delete><query>*:*</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true


公众号: DailyJobOps
DailyJobOps