Apache Solr 是一个基于 Apache Lucene 的开源搜索平台,旨在创建强大的应用搜索和索引功能。它提供先进的全文搜索、分面搜索、实时索引和分布式搜索功能,是构建搜索引擎和数据检索系统的热门选择。
Solr 具有高度可扩展性,并针对海量数据进行了优化,通常用于企业环境中的网站搜索、电子商务和大数据分析等任务。其类似于 REST 的应用程序接口可轻松与其他系统集成,并支持突出显示查询建议和地理空间搜索等功能。Solr 的灵活性、性能和社区支持使其成为需要强大搜索功能的企业的领先解决方案。
在本指南中,你将学习如何在 Ubuntu 24.04 服务器上安装 Apache Solr。除此之外,你还将学习如何使用 BasicAuthentication 确保 Apache Solr 的安全,并使用 solr 命令行创建第一个集合。
在安装 Apache Solr 之前,我们先来准备和配置 Ubuntu 系统,增加内核参数中的 shmmax 和 nr_hugepages,然后增加默认的最大打开文件和进程数。
执行下面的命令来增加 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。Apache Solr 要求系统至少安装 Java 11,在本指南中,我们将使用 default-jdk 软件包,它提供了最新的稳定版 Java OpenJDK。
首先,按以下步骤更新 Ubuntu 软件包索引。
sudo apt update
现在使用下面的命令安装 default-jdk 软件包。输入 “Y ”确认安装。
sudo apt install default-jdk
安装完成后,使用以下命令检查 Java 版本。
java --version
如下所示,Java 21 已安装。
现在,您的 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 的详细安装过程。
现在用下面的命令检查 solr 的状态。你可以看到 solr 的状态是 active(已退出),这意味着服务正在运行,但 systemd 找不到任何要监控的文件。
sudo systemctl status solr
您还可以使用下面的 ss 命令检查系统上的开放端口。Apache Solr 应在 8893 端口上运行。
ss -tulpn
现在 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 内存。
SOLR_HEAP="4g"
在 SOLR_HOST 和 SOLR_JETTY_HOST 选项中输入你的 IP 地址。在本例中,Apache Solr 将在本地 IP 地址 192.169.10.60 上运行。
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 的安全。这可以通过创建一个新文件 /var/solr/data/security.json 来实现。
使用 vim 编辑器创建新配置文件 /var/solr/data/security.json
sudo vim /var/solr/data/security.json
插入以下配置,为 Apache Solr 设置身份验证,并创建一个密码为 solrRocks 的新用户 solr。
{
"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
接下来,打开浏览器,访问 Apache Solr 安装 http://192.168.10.60:8983/。你将被重定向到 Apache Solr 登录页面。
输入用户 solr 和密码 solrRocks,您将看到 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 命令行创建了第一个集合。