什么是Apache Solr? Apache Solr是一个用Java编写的开源企业级搜索平台,可以让您创建自定义搜索引擎来索引数据库,文件和网站。 它具有Apache Lucene的后端支持。 它可以例如用于在多个网站中进行搜索,并可以显示搜索内容的建议。 Solr使用基于XML(可扩展标记语言)的查询和结果语言。 有可用于Python,Ruby和JSON(Javascript对象符号)的API(应用程序接口)。
Solr提供的其他一些功能包括:
- 全文检索。
- 代码段生成和突出显示。
- 自定义文件订购/排名。
- 拼写建议
本教程将向您展示如何在Ubuntu 16.04 LTS上安装最新的Solr版本。 这些步骤很可能与以后的Ubuntu版本一起使用。
更新系统
使用非root用户登录Ubuntu服务器。 通过这个用户,你将不得不执行所有的步骤,然后使用Solr。
要更新系统,请执行以下命令以使用最新的修补程序和更新来更新系统。
sudo apt-get update && apt-get upgrade -y
设置Java运行时环境
Solr是一个Java应用程序,因此需要首先安装Java运行时环境才能设置Solr。
我们必须安装Python软件属性才能安装最新的Java 8.运行以下命令来安装软件。
root@server1:~# sudo apt-get install python-software-properties
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python-apt-dbg python-apt-doc libcurl4-gnutls-dev
python-pycurl-dbg python-pycurl-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python-software-properties python2.7
python2.7-minimal
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 4,070 kB of archives.
After this operation, 17.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]
按Y继续。
执行该命令后,通过运行以下命令,将webupd8team Java PPA存储库添加到系统中:
sudo add-apt-repository ppa:webupd8team/java
请求时按[ENTER]。 现在,您可以使用apt轻松安装最新版本的Java 8。
首先,更新软件包列表以从新的PPA获取可用软件包:
sudo apt-get update
然后使用以下命令安装最新版本的Oracle Java 8:
sudo apt-get install oracle-java8-installer
root@server1:~# sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils
Suggested packages:
binutils-doc binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho ttf-arphic-uming firefox
| firefox-2 | iceweasel | mozilla-firefox | iceape-browser | mozilla-browser | epiphany-gecko | epiphany-webkit | epiphany-browser | galeon | midbrowser | moblin-web-browser | xulrunner
| xulrunner-1.9 | konqueror | chromium-browser | midori | google-chrome
The following NEW packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 oracle-java8-installer x11-common xfonts-encodings xfonts-utils
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 6,498 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]
按Y继续。
如果要使用Oracle JDK,请单击确定按钮,您必须同意http://java.com/license中的许可证。
该软件包安装了一种元安装程序,然后直接从Oracle下载二进制文件。 安装完成后,通过运行以下命令检查安装的Java版本
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
现在你已经安装了Java 8,我们将转到下一步。
安装Solr应用程序
Solr可以以不同的方式安装在Ubuntu上,在本文中,我将向您展示如何从源安装最新的软件包。
我们将从下载Solr发行版开始。 首先从他们的网页找到可用包的最新版本,复制链接并使用wget命令下载
对于这个设置,我们将使用http://www.us.apache.org/dist/lucene/solr/6.0.1/
cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
root@server1:/tmp# wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
--2016-06-03 11:31:54-- http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
Resolving www.us.apache.org (www.us.apache.org)... 140.211.11.105
Connecting to www.us.apache.org (www.us.apache.org)|140.211.11.105|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 137924507 (132M) [application/x-gzip]
Saving to: ‘solr-6.0.1.tgz’
现在,运行以下命令提取服务安装文件:
tar xzf solr-6.0.1.tgz solr-6.0.1/bin/install_solr_service.sh --strip-components=2
并使用脚本安装Solr作为服务:
sudo ./install_solr_service.sh solr-6.0.1.tgz
输出将类似于:
root@server1:/tmp# sudo ./install_solr_service.sh solr-6.0.1.tgz
id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 111) ...
Adding new group `solr' (GID 117) ...
Adding new user `solr' (UID 111) with group `solr' ...
Creating home directory `/var/solr' ...
Extracting solr-6.0.1.tgz to /opt
Installing symlink /opt/solr -> /opt/solr-6.0.1 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
Service solr installed.
使用此命令检查服务的状态
service solr status
你应该看到一个从这开始的输出:
root@server1:/tmp# service solr status
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)
Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
创建Solr搜索集合:
使用Solr,我们可以创建多个集合。 运行给定的命令,提到集合的名称(这里是startstarted)并指定其配置。
sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
root@server1:/tmp# sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
Copying configuration to new core instance directory:
/var/solr/data/gettingstarted
Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted
{
"responseHeader":{
"status":0,
"QTime":4427},
"core":"gettingstarted"}
我们的第一个集合的新核心目录已创建。 要查看默认模式文件,请执行以下操作:
/opt/solr/server/solr/configsets/data_driven_schema_configs/conf
使用Solr Web界面
Apache Solr现在可以在默认端口上访问,这是8983.管理界面应该可以访问http:// your_server_ip : 8983 / solr。 您的防火墙应允许该端口运行链接。
例如:
http://192.168.1.100:8983/solr/
要查看我们之前创建的第一个集合的详细信息,请在左侧菜单中选择“getstarted”集合。
选择“收藏”集合后,选择左侧菜单中的“文档”。 在那里,您可以输入可以由Solr搜索的JSON格式的实际数据。 要添加更多数据,请将以下示例复制并粘贴到“文档”字段中:
{
"id": 1,
"book_title": "My First Book",
"published": 1985,
"description": "All about Linux"
}
添加数据后点击提交文档按钮。
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 189
}
}
现在我们可以点击左边的查询 ,然后点击执行 查询 ,
我们会看到这样的东西:
{
"responseHeader":{
"status":0,
"QTime":24,
"params":{
"q":"*:*",
"indent":"on",
"wt":"json",
"_":"1464947017056"}},
"response":{"numFound":1,"start":0,"docs":[
{
"id":"1",
"book_title":["My First Book"],
"published":[1985],
"description":["All about Linux"],
"_version_":1536108205792296960}]
}}
虚拟机镜像下载本教程
本教程可以随时准备为ovf / ova格式的虚拟机映像使用Howtoforge订阅服务器。 VM格式与VMWare和Virtualbox兼容。 虚拟机映像使用以下登录详细信息:
SSH / Shell登录
用户名:administrator
密码:youcl
该用户具有sudo权限。
请更改所有上述密码以保护虚拟机。
结论
在Ubuntu上成功安装Solr Web界面后,您可以使用Solr API和Web Interface插入数据或查询数据。