本文英文版地址:https://examples.javacodegeeks.com/enterprise-java/apache-solr/install-solr-ubuntu/

翻译备注:本文采用谷歌翻译,请有时间的同学可以从英文版学习。

在这个“如何在Ubuntu上安装Solr”的示例中,我们将讨论如何在Ubuntu操作系统中下载和安装Solr。Ubuntu桌面操作系统为世界各地数百万台PC和笔记本电脑供电。 所以这个例子是专门为Ubuntu上的用户和希望在Ubuntu上安装Solr。与Solr安装一起,我们还将向您展示如何创建Solr核心并索引与Solr一起提供的示例文件。

我们首选的环境是Ubuntu 14.x和solr-5.x。在开始Solr安装之前,请确保已安装JDK并已正确设置Java_Home。

1.安装Apache Solr

首先,让我们从以下位置下载最新版本的Apache Solr:

http://www.eu.apache.org/dist/lucene/solr/5.3.1/

文件: solr-5.3.1.tgz

一旦文件下载,在/ opt下创建一个名为solr的目录并移动下载的文件。 现在导航到目录/opt/solr并使用以下命令解压缩该文件。

sudo tar -xvf solr-5.3.1.tgz

Solr命令必须从bin目录中执行,因此请导航到以下路径。

/opt/solr/solr-5.3.1/bin

提取的目录将如下所示。

Solr Ubuntu文件夹

bin文件夹包含用于启动和停止服务器的脚本。 example文件夹包含几个示例文件。 我们将使用其中一个来演示Solr如何对数据进行索引。server文件夹包含用于写入所有Solr日志的logs文件夹。在索引期间检查日志中的任何错误将有所帮助。 服务器下的solr文件夹包含不同的集合或核心。 每个核/集合的配置和数据存储在相应的核/集合文件夹中。

Apache Solr附带了一个内置的Jetty服务器。 但在我们启动solr实例之前,我们必须验证JAVA_HOME是否在机器上设置。

现在使用以下命令启动Solr服务器。

sudo ./solr start

这将在默认端口8983下启动Solr服务器。我们现在可以在浏览器中打开以下URL,并验证我们的Solr实例正在运行。

http://localhost:8983/solr/#/

Solr Ubuntu控制台

2.配置Apache Solr

当Solr服务器在独立模式下启动时,配置称为核心,当在SolrCloud模式下启动时,配置称为集合。在这个例子中,我们将讨论独立的服务器和核心。 我们将暂停SolrCloud讨论以供日后使用。

首先,我们需要创建一个用于索引数据的Core。 Solr create命令有以下选项:

  • -c <name> - 要创建的核心或集合的名称(必需)。
  • -d <confdir> - 配置目录,在SolrCloud模式中有用。
  • -n <configName> - 配置名称。 此默认值与核心或集合的名称相同。
  • -p <port> - 发送create命令的本地Solr实例的端口; 默认情况下,脚本尝试通过查找正在运行的Solr实例来检测端口。
  • -s <shards> - 将集合拆分为多少个分片,默认值为1。
  • -rf <replicas> - 集合中每个文档的副本数。 默认值为1。

在本例中,我们将使用-c参数作为核心名称,使用-d参数作为配置目录。 对于所有其他参数,我们使用默认设置。

现在浏览solr-5.3.1/bin目录并发出以下命令

sudo ./solr create -c jcg -d basic_configs

我们可以在命令窗口中看到以下输出。

01 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">Setup new core instance directory:</span>设置新的核心实例目录:</span>
02 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">/opt/solr/solr-5.3.1/server/solr/jcg</span> /opt/solr/solr-5.3.1/server/solr/jcg</span>
03 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">Creating new core'jcg' using command:</span>使用命令创建新核心'jcg':</span>
04 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">http://localhost:8983/solr/admin/cores?action=CREATE&name=jcg&instanceDir=jcg</span> http:// localhost:8983 / solr / admin / cores?action = CREATE&name = jcg&instanceDir = jcg</span>
05
06 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">{</span> {</span>
07 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">"responseHeader":{</span> “responseHeader”:{</span>
08 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">"status":0,</span> “status”:0,</span>
09 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">"QTime":5862},</span> “QTime”:5862},</span>
10 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">"core":"jcg"}</span> “core”:“jcg”}</span>

现在编辑/server/solr/jcg/conf文件夹中的schema.xml文件,并在uniqueKey元素后面添加以下内容。

schema.xml

1 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><uniqueKey>id</uniqueKey></span> <uniqueKey>id </ uniqueKey></span>
2 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><!-- Fields addedfor books.csv load--></span> <! - 为books.csv加载添加的字段 - ></span>
3 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><field name="cat"type="text_general"indexed="true" stored="true"/></span> <field name =“cattype=“text_general”indexed =“true”stored =“true”/></span>
4 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><field name="name"type="text_general"indexed="true" stored="true"/></span> <field name =“name”type=“text_general”indexed =“true”stored =“true”/></span>
5 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><field name="price"type="tdouble"indexed="true" stored="true"/></span> <field name =“price”type=“tdouble”indexed =“true”stored =“true”/></span>
6 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><field name="inStock"type="boolean"indexed="true" stored="true"/></span> <field name =“inStock”type=“boolean”indexed =“true”stored =“true”/></span>
7 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left"><field name="author"type="text_general"indexed="true" stored="true"/></span> <field name =“author”type=“text_general”indexed =“true”stored =“true”/></span>

由于我们已经修改了配置,我们必须停止和启动服务器。 为此,我们需要通过命令行从bin目录发出以下命令:

sudo ./solr stop -all

服务器将立即停止。 现在启动服务器通过命令行从bin目录发出以下命令:

sudo ./solr start

3.索引数据

Apache Solr附带一个名为SimplePostTool的独立Java程序。 这个程序被打包到JAR中,安装在文件夹example / exampledocs下。

现在,我们导航到命令提示符中的/ example / exampledocs文件夹,并键入以下命令。您将看到一堆使用该工具的选项。

java -jar post.jar -h

使用格式一般如下:

Usage: java [SystemProperties] -jar post.jar [-h|-] [<file|folder|url|arg>
[<file|folder|url|arg>...]]

正如我们前面所说,我们将索引solr安装附带的“books.csv”文件中的数据。 我们将导航到命令提示符中的/ example / exampledocs并发出以下命令。

java -Dtype=text/csv -Durl=http://localhost:8983/solr/jcg/update -jar post.jar books.csv

这里使用的SystemProperties是:

  • -Dtype - 数据文件的类型。
  • -Durl - jcg核心的URL。
1 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">SimplePostTool version 5.0.0</span> SimplePostTool版本5.0.0</span>
2 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">Posting files to [base] urlhttp://localhost:8983/solr/jcg/update using content-typetext/csv...</span>将文件发布到[base] url http:// localhost:8983 / solr / jcg / update使用content-typetext / csv ...</span>
3 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">POSTingfile books.csv to [base]</span>将文件books.csv发布到[base]</span>
4 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">1 files indexed.</span> 1个文件已索引。</span>
5 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">COMMITting Solr index changes tohttp://localhost:8983/solr/jcg/update...</span>提交Solr索引更改为http:// localhost:8983 / solr / jcg / update ...</span>
6 <span class="notranslate"onmouSEOver="_tipon(this)"onmouSEOut="_tipoff()"><span class="google-src-text"style="direction: ltr; text-align: left">Time spent: 0:00:01.149</span>所用时间:0:00:01.149</span>

现在,来自示例文件的数据被索引和存储。 让我们打开以下URL。 我们可以看到与示例文件中的数据计数匹配的文档数。

http://localhost:8983/solr/#/jcg

Solr Ubuntu数据

4.下载模式文件

下载
您可以下载此示例中使用的模式文件: schema.xml

如何在Ubuntu上安装Solr的更多相关文章

  1. AmazeUI中各种的导航式菜单与解决方法

    这篇文章主要介绍了AmazeUI中各种的导航式菜单与解决方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  3. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  4. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  5. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  6. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  7. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

  8. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  9. ios – 从文件目录加载UIImage

    我正在尝试从文件目录加载一个UIImage,并将其设置为UIImageView,如下所示:但是,每当我尝试以上,图像从不加载.该图像在Documents/MyAppCustomDirectory/school.png中.以上是否正确从该目录加载?我也尝试了其他几个:UIImageimageWithContentsOfFile,以及基于SO响应的其他方法.解决方法要获取您应该使用的文档目录:我不太清

  10. Xcode 6 / iOS 8模拟器数据和软件包文件夹脚本

    随着xcode6的最新更改,它看起来像.app文件和文档文件夹不再驻留在iPhone模拟器目录中的同一个文件夹中.以前,我们可以访问目录和.app文件但在Xcode6中,模拟器目录是完全不同的:和其中CryptNumber1,2和3都不同.有没有办法找到包含.app文件的文件夹后,我可以得到相应的文件夹?我有这个麻烦.为什么…?

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部