Apache Solr是一个基于Apache Lucene构建的开源搜索平台,旨在创建强大的应用搜索和索引功能。它提供高级全文搜索、分面搜索、实时索引和分布式搜索,使其成为构建搜索引擎和数据检索系统的热门选择。
Solr具有高度可扩展性,并针对大量数据进行了优化,通常用于企业环境中的网站搜索、电子商务和大数据分析等任务。其类REST API允许与其他系统轻松集成,并支持查询建议高亮显示和地理空间搜索等功能。Solr的灵活性、性能和社区支持使其成为需要强大搜索功能的组织的领先解决方案。
在本指南中,您将学习如何在Ubuntu 24.04服务器上安装Apache Solr。此外,您还将学习如何使用BasicAuthentication保护Apache Solr,以及如何使用solr命令行创建第一个集合。
前提条件
在开始本指南之前,请确保您具备以下条件:
- 一台Ubuntu 24.04服务器
- 一个具有管理员权限的非root用户
准备Ubuntu服务器
在安装Apache Solr之前,让我们通过增加内核参数中的shmmax和nr_hugepages,然后增加默认的最大打开文件数和进程数来准备和配置Ubuntu系统。
执行以下命令以增加Ubuntu服务器上的shmmax和nr_hugepages。
sudo echo 4294967295 > /proc/sys/kernel/shmmax sudo echo 1536 > /proc/sys/vm/nr_hugepages
现在运行以下命令修改/etc/security/limits.conf文件。
sudo nano /etc/security/limits.conf
使用以下配置为用户solr增加最大打开文件数和进程数。
solr soft nofile 65000 solr hard nofile 65000 solr soft nproc 65000 solr hard nproc 65000
保存文件并退出编辑器。
安装Java OpenJDK
现在您已经配置了系统,让我们安装Java OpenJDK。Apache Solr要求系统上至少安装Java 11,在本指南中,我们将使用提供最新稳定版Java OpenJDK的default-jdk包。
首先,使用以下命令更新Ubuntu软件包索引。
sudo apt update
现在使用以下命令安装default-jdk包。输入Y确认安装。
sudo apt install default-jdk

安装完成后,使用以下命令检查Java版本。
java --version
您可以看到Java 21已安装。

安装Apache Solr
现在Ubuntu系统已配置完毕且Java OpenJDK已安装,让我们开始Apache Solr的安装。在本指南中,您将使用Solr包提供的安装脚本安装Apache Solr。
首先,运行以下命令安装基本工具,如curl、lsof和bc。
sudo apt install curl lsof bc

现在使用以下wget命令下载Apache Solr二进制包。
wget https://www.apache.org/dyn/closer.lua/solr/solr/9.7.0/solr-9.7.0.tgz?action=download
重命名Apache Solr包并使用以下命令提取安装脚本install_solr_service.sh。
mv solr-9.7.0.tgz?action=download solr-9.7.0.tgz tar -xf tar xzf solr-9.7.0.tgz solr-9.7.0/bin/install_solr_service.sh --strip-components=2
现在执行install_solr_service.sh脚本安装Apache Solr。
sudo bash ./install_solr_service.sh solr-9.7.0.tgz
以下是Apache Solr安装的详细说明:
- 默认安装目录位于
/opt/solr目录。 - 新用户
solr会自动创建。 - 新的服务文件
solr.service会被创建用于管理Apache Solr服务。

现在使用以下命令检查solr状态。您可以看到solr的状态为active(exited),这意味着服务正在运行,但systemd找不到任何文件来监控。
sudo systemctl status solr

您还可以使用以下ss命令检查系统上的开放端口。Apache Solr应该在端口8983上运行。
ss -tulpn
配置Apache Solr
现在Apache Solr已安装,让我们通过修改/etc/default/solr.in.sh脚本中的Apache Solr参数来进行配置。然后,增加默认的最大内存堆,以及用于运行Apache Solr的IP地址。
使用vim编辑器打开Solr配置文件/etc/default/solr.in.sh。
sudo vim /etc/default/solr.in.sh
更改默认的SOLR_HEAP选项,设置Apache Solr的最大内存分配。在本例中,我们将使用4GB的RAM。
SOLR_HEAP="4g"
在SOLR_HOST和SOLR_JETTY_HOST选项中输入您的IP地址。在本例中,Apache Solr将在本地IP地址192.168.10.15上运行。
SOLR_HOST="192.168.10.15" SOLR_JETTY_HOST="192.168.10.15"
现在运行以下systemctl命令重启Apache Solr服务并应用更改。
sudo systemctl restart solr
您可以使用以下ss命令检查开放端口以及Apache Solr使用的IP地址。
ss -tulpn

使用身份验证保护Apache Solr
配置Apache Solr之后,下一步是保护您的部署。在本例中,我们将使用基本身份验证来保护Apache Solr。这可以通过创建新文件/var/solr/data/security.json来完成。
使用vim编辑器创建新配置/var/solr/data/security.json。
sudo vim /var/solr/data/security.json
插入以下配置,为Apache Solr设置身份验证,并创建一个新用户solr,密码为solrRocks。
{
"authentication":{
"blockUnknown": true,
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
"realm":"My Solr users",
"forwardCredentials": false
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"permissions":[{"name":"all", "role":"admin"}],
"user-role":{"solr":"admin"}
}
}
保存文件并退出编辑器。
现在运行以下systemctl命令重启solr服务并应用更改。
sudo systemctl restart solr
接下来,打开Web浏览器并访问您的Apache Solr安装地址 http://192.168.10.60:8983/。您将被重定向到Apache Solr登录页面。

输入用户solr和密码solrRocks,您将看到Apache Solr仪表板。

在Apache Solr中创建第一个集合
至此,您已经配置并保护了Apache Solr。现在您将从命令行在Apache Solr中创建第一个集合。
使用vim编辑器再次打开文件/etc/default/solr.in.sh。
sudo vim /etc/default/solr.in.sh
取消注释SOLR_AUTH_TYPE和SOLR_AUTHENTICATION_OPTS行,并保持两者为默认值。
SOLR_AUTH_TYPE="basic" SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"
保存文件并退出编辑器。
现在运行以下命令重启Apache Solr服务。
sudo systemctl restart solr
接下来,运行以下命令创建名为my_first_index的第一个集合。
su - solr -c "/opt/solr/bin/solr create -c my_first_index -n MyIndex"

现在转到Apache Solr仪表板,您将看到新集合my_first_index已创建。

总结
恭喜!您已完成在Ubuntu 24.04服务器上安装Apache Solr。您使用Java OpenJDK 21进行了安装,将其配置为在本地IP地址上运行,并使用BasicAuthentication进行了保护。最后,您使用Solr命令行创建了第一个集合。