Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
开始之前
- 熟悉我们的入门教程并完成设置腾讯云CVM服务器主机名和时区的步骤。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。
- 本教程需要您更新系统和软件包存储库并进行安装
wget
工具,您可以参考我们社区的如何使用wget
。
注意 本教程中的步骤需要root权限。请确保以
root
身份或使用sudo
前缀运行以下步骤。
安装Java
- 安装Java 8 JDK:
Debian和Ubuntu
- 添加Java 8存储库,下载GPG密钥并安装Java 8。
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt update
apt install oracle-java8-installer
- 在大多数系统上,还需要下载并安装
oracle-java8-set-default
软件包。要进行验证,请运行以下命令并检查匹配的输出。如果输出不匹配,请继续执行第三步.否则,Java 8安装完成:
dpkg --list | grep oracle
输出:
ii oracle-java8-installer 8u144-1~webupd8~0 all Oracle Java(TM) Development Kit (JDK) 8
ii oracle-java8-set-default 8u144-1~webupd8~0 all Set Oracle JDK 8 as default Java
- 安装
oracle-java8-set-default
包:
apt install oracle-java8-set-default
以Fedora和RHEL为基础
yum install java-1.8.0-openjdk.x86_64
**Arch Linux**
pacman -S jre8-openjdk
**openSUSE**
zypper in java-1_8_0-openjdk
- 验证Java安装:
java -version
输出应类似于:
openjdk version "1.8.0_144"
OpenJDK Runtime Environment (IcedTea 3.5.1) (suse-13.3-x86_64)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
下载并安装Apache Solr
您可以将以下示例中的6.6.1
的每个实例替换为Apache Solr官方网站上的最新版本。
- 切换到
/opt
目录并下载Solr:
cd /opt
wget http://apache.claz.org/lucene/solr/6.6.1/solr-6.6.1.tgz
- 从下载的存档中提取Solr安装脚本:
tar xzf solr-6.6.1.tgz solr-6.6.1/bin/install_solr_service.sh --strip-components=2
- 执行Solr安装脚本。Arch Linux用户应该跳过以下Arch特定的步骤:
bash ./install_solr_service.sh solr-6.6.1.tgz
Arch Linux
- 下载Arch Linux的安装脚本:
wget https://github.com/Darkstar90/solr-arch-install/blob/master/install_solr_service_arch.sh
- 执行自定义Arch Linux安装脚本:
bash ./install_solr_service_arch.sh solr-6.6.1.tgz
想要了解更多Linux教程请前往腾讯云+社区学习更多知识。
为Solr 创建防火墙规则
Solr 默认侦听端口8983
。打开端口以允许使用首选防火墙管理器访问Web界面:
FirewallD
sudo firewall-cmd --zone=public --add-port=8983/tcp --permanent
sudo firewall-cmd --reload
UFW
ufw allow 8983/tcp comment "Solr port"
iptables
iptables -A INPUT -p tcp --dport 8983 -j ACCEPT -m comment --comment "Solr port"
注意 使用iptables-persistent保存你的iptables规则,否则它会在下次重启时丢失。
访问Solr管理页面
Solr通过面向Web的管理页面进行管理,可以通过您的腾讯云CVM的IP地址或8983
端口上的域名来访问。
在Web浏览器中,输入您的Linode的IP地址或域名,然后输入端口8983
:
198.51.100.0:8983/solr
保护Solr管理页面
为Solr管理页面设置受密码保护的登录页面:
- 切换到
/opt/solr/server/etc
并编辑webdefault.xml
文件。在</web-app>
之前,将以下内容添加到文件末尾:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Solr Admin Auth</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr Admin Auth</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
</auth-constraint>
</security-constraint>
- 在同一目录中,编辑
jetty.xml
文件并在</Configure>
结尾之前添加以下内容:
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Solr Admin Auth</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
- 在当前目录中创建一个
realm.properties
文件以添加用户登录信息。用您选择的用户和安全密码替换用户名admin
和密码admin123
:
admin: admin123,user
在这里,admin:
命令使用admin123
密码来指定用户名“admin” 。而user
命令将此新用户归类到webdefault.xml
中已设置的“user”用户名称。
- 重启solr服务:
systemctl restart solr
- 您还可以使用此过程来保护Solr中的其他网页。例如,如果您创建了两个Solr搜索核心,
core1
并且core2
,可以通过添加其他<url-pattern>
行到webdefault.xml
来限制对两者的访问:
<url-pattern>/core1/*</url-pattern>
<url-pattern>/core2/*</url-pattern>
通过在腾讯云CVM服务器上安装Solr,您现在可以创建搜索索引并添加数据,或将其与Web应用程序或网站集成。
了解更多
有关此主题的其他信息,您可能需要参考以下资源。
- Apache Solr参考教程
参考文献:《Add a Custom Search to your Site with Solr》