Solr安装

当前版本 solr-8.9.0

安装

下载

下载 Solr,下载 zip 文件就可以了。

解压当前 solr.zip

启动

进入 solr\bin 目录

1
solr start -p 8983

web管理

http://127.0.0.1:898/

创建 core

web管理页面菜单的 Core Admin 中。

错误 Can't find resource 'solrconfig.xml'

solr.home 路径可以在 web管理页面的 Java Properties 中查询到。

Windows
  1. solr\server\solr\ 目录下创建文件夹,文件夹名称为 Core 的名称。
  2. 拷贝 solr\server\solr\configsets\_default\conf 文件夹到刚刚创建的 Core 文件夹中。
  3. 再次在 web管理页面中创建。
Linux
  1. 默认 solr.home/var/solr/data

  2. cd /var/solr/data/
    mkdir core1
    
    1
    2
    3
    4
    5

    3. 拷贝 `/opt/solr/server/solr/configsets/_default/conf` 文件夹到刚刚创建的 `Core` 文件夹中。

    4. ```bash
    cp -r /opt/solr/server/solr/configsets/_default/conf /var/solr/data/core1/
  3. 再次在 web 管理页面中创建。

Docker

进入 docker

1
2
3
# 查询 solr 容器 id
docker ps
docker exec -it solr /bin/bash

Linux 下的操作一样。

添加验证

添加用户

solr/server/etc/ 下创建 role.properties

1
2
3
4
5
6
# 这个文件定义用户名,密码和角色  
# 格式如下
# <username>: <password>[,<rolename> ...]
#
#userName: password,role
xxxxx: xxxxxx,xxxxxx #例如:maxzhao:password,admin

/solr/server/contexts 下修改 solr-jetty-context.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">
<Property name="hostContext" default="/solr"/>
</Set>
<Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp
</Set>
<Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml
</Set>
<Set name="extractWAR">false</Set>
<!-- 配置账号密码 -->
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService">
<!-- 一个名字而已-->
<Set name="name">BootRealm</Set>
<Set name="config">
<SystemProperty name="jetty.home" default="."/>/etc/role.properties
</Set>
</New>
</Set>
</Get>
</Configure>

修改 /solr/server/solr-webapp/webapp/WEB-INF/web.xml

添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

<web-app>
<security-constraint>
<web-resource-collection>
<!--描述-->
<web-resource-name>Solr</web-resource-name>
<!-- 验证的网页的位置-->
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- 验证的角色,别写成用户名,如有多个角色可以写多个role-name 标签-->
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<!-- 关键-->
<auth-method>BASIC</auth-method>
<realm-name>BootRealm</realm-name>
</login-config>
</web-app>

重启

1
2
solr stop -p 8984
solr start -p 8984

连接方式修改

添加用户名密码的连接字符串:

http://maxzhao:password@localhost:8983/solr/core1

引入依赖:

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>

本文地址: https://github.com/maxzhao-it/blog/post/4258/