前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Solr向您的站点添加自定义搜索

使用Solr向您的站点添加自定义搜索

原创
作者头像
新巴子
发布2018-08-16 17:23:35
1.2K0
发布2018-08-16 17:23:35
举报

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

开始之前

  1. 熟悉我们的入门教程并完成设置腾讯云CVM服务器主机名和时区的步骤。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  2. 本教程需要您更新系统和软件包存储库并进行安装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应用程序或网站集成。

了解更多

有关此主题的其他信息,您可能需要参考以下资源。


参考文献:《Add a Custom Search to your Site with Solr》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始之前
  • 安装Java
  • 下载并安装Apache Solr
  • 为Solr 创建防火墙规则
  • 访问Solr管理页面
  • 保护Solr管理页面
  • 了解更多
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档