Apache Solr 4.6.0安装以及与Drupal7的兼容性


14

我在安装Apache Solr时遇到困难。我下载的最新版本是4.6.0。但是所有Drupal文档和教程(请参阅http://www.youtube.com/watch?v=ori-VvvH1Aw)都在谈论3.5.0。虽然在互联网上找不到3.5.0,但是4.6.0具有完全不同的目录结构,并且没有有关如何在服务器或本地WAMP上安装此最新版本的文档。没有提到最建议将哪个Apache Solr版本与Drupal一起使用?有什么帮助吗?


这里有一篇很棒的文章:lullabot.com/blog/article/installing-solr-use-drupal在4.5.1上对我有用。如果您想使用Search API Solr,那么我在此处编写了Ubuntu 12.04的安装示例:drupal.org/node/2143715
Dominic Woodman

Answers:


21

在我真正理解所有这些之前,您并不孤单,我不得不搜寻互联网并阅读几篇文章。我尝试了三种不同的方法,直到最终正确!

如果您使用的是Debian / Ubuntu(与Tomcat7一起使用),则比大多数概述要容易得多。我更喜欢Lullabot,因为当您通过Ubuntu安装它时,它实际上是一项服务,而且不太麻烦:)

安装Java

apt-get install java7-jdk

安装Tomcat

apt-get install tomcat7 tomcat7-admin

完成此操作后,您便可以看到http://localhost:8080并正常运行。

注意:由于8080很常见,因此建议将端口推到另一个端口。如果您想这样做,请使用此代码!

sudo sed -i s/8080/8983/g /var/lib/tomcat7/conf/server.xml

配置Tomcat

  1. 您将需要实际为Tomcat创建一个用户帐户,以便其他人必须登录到admin(这使其更安全)。

    nano /var/lib/tomcat7/conf/tomcat-users.xml

  2. 然后在<tomcat-users>标签之间添加这些xml参数

    <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="!!somename!!" password="!!somepassword!!" roles="manager-gui,admin-gui"/>

  3. 现在,您可以再次重新启动tomcat并在以下位置查看管理页面 http://localhost:8983/manager/html

    service tomcat7 restart

安装Solr

  1. 这里下载最新的ApacheSolr(当我写这篇文章时,我就使用了4.7)

  2. 将文件解压缩到目录中

复制Solr库文件

接下来,我们要将库文件添加到Tomcat库目录。注意:如果愿意,也可以使用符号链接,但是出于了解所有内容的目的,我选择将其直接放置在目录中

cp ~/solr-4.x.x/example/lib/ext/* /usr/share/tomcat7/lib/

也可以从solr / dist / solrrj-lib / *复制Java库是一个好主意

cp ~/solr-4.x.x/dist/solrj-lib/* /usr/local/tomcat7/lib/

复制Solr WAR应用程序文件

cp ~/solr-4.x.x/dist/solr-4.x.x.war /var/lib/tomcat7/webapps/solr.war

设置Drupal ApacheSolr核心

  1. 我们首先需要从ApacheSolr复制示例配置文件。

    mkdir -p /var/lib/tomcat7/solr cp -r ~/solr-4.x.x/example/solr/collection1/conf /var/lib/tomcat7/solr/

  2. 接下来,获取最新版本的apachesolr模块https://drupal.org/project/apachesolr并将其解压缩

    tar xvf apachesolr-*.tar.gz

  3. 与solr配置同步apachesolr配置文件(用于Drupal)

    rsync -av apachesolr/solr-conf/solr-4.x/ /var/lib/tomcat7/solr/conf/

注意:我发现一个错误,其中ApacheSolr由于重复错误而拒绝启动。我在这里报告过,所以您可能希望在这里查看解决方案因为在撰写本文时,如果没有它我将无法运行它!

  1. 创建一个核心定义文件以告诉Apache Solr哪些核心可用。

    nano /var/lib/tomcat7/solr/solr.xml

  2. 将以下代码粘贴到该文件中

    <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="!!yourcorename!!" instanceDir="!!yourcoredir!!" /> </cores> </solr>

创建Drupal核心目录

这将使用该名称在您的系统中创建一个新内核。如果您想添加更多内容,则只需重复上述步骤即可。

mkdir /var/lib/tomcat7/solr/!!yourcoredir!!
cp -r /var/lib/tomcat7/solr/conf /var/lib/tomcat7/solr/!!yourcoredir!!/

让它活起来

  1. 最后一站!让tomcat7入睡

    service tomcat7 stop

  2. 现在更改tomcat目录上的权限

    chown -R tomcat7:tomcat7 /var/lib/tomcat7

  3. 备份开始

    service tomcat7 start

这是活的

您应该能够http://localhost:8983/solr看到一个新的核心实例!现在,您可以继续进行配置,并配置drupal来指出这一点。

注意:您的新内核位于,http://localhost:8983/solr/!!yourcorename!!将在Drupal ApacheSolr模块中使用。

信誉和道具归Pacoup所有


1
很棒的向导。在“配置Tomcat”下,它缺少步骤2下的xml:“然后在标签之间添加这些xml参数” ...没有给出xml。
乔丹·马格努森

嗯,在那里,但您看不到它可能是浏览器的原因?让我尝试更改输出以解决此问题
shaneonabike 2014年

其实我刚刚检查过,并且使用的是正确的代码标签?
shaneonabike 2014年


我修好了它。xml代码需要放在`之间
Jordan Magnuson


1

这是Drupal社区文档(在Tomcat上安装Solr)中描述的方式:

CentOS的

本演练假定您已经安装了Tomcat。如果您不这样做,仅使用WHM并将其安装在那里并重建apache可能会更容易。我要说的就是点击。

一旦安装了Tomcat,就可以通过以下方式验证其安装:

domain.com:8080 

您应该看到默认的Tomcat页面。如果不是,请寻求帮助。如果您不这样做,那么您会伤害到同一问题的下一个人。如果我们不想提供帮助,那么我们就不会开源。

下载您的Solr副本。如果您不知道从何处获得它,请使用Google。

为了使现在和将来变得更轻松,请找到您的Tomcat安装

$ locate tomcat

创建一个软链接,如下所示:

ln -s /my/tomcat/location /tomcat

如果您做对了,您应该能够

$ /tomcat

在sshd中并进入您的目录。

我将使用/lib目录作为示例。如果您没有,请使用mkdir /lib命令创建它。

  1. 将Solr提取到临时位置,就我而言,我只是从Solr镜像中获取了zip文件。

    $ unzip apache-solr-1.4.1.zip /lib/

    建立你的Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. 重命名您的war文件,以方便使用。

    $ cd /lib/apache-solr-1.4.1
    $ cd dist
    $ mv apache-solr-1.4.1.war solr.war  (this just renames it without asking you)
    $ dir  (check to make sure it worked. you should see solr.war)
  3. 复制solr.war/lib/solr/example

    $ cp solr.war /lib/solr/example
    $ cd /lib/solr/example
    $ dir  (verify that the solr.war is in the directory, you should also see the familiar start.jar file there)
  4. 从您的apachesolr位置复制xml文件。通常它将是:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. 在Tomcat中创建一个xml文件,告诉它在Tomcat启动时运行Solr

    $ cd /tomcat
    $ cd /conf/Catalina/localhost
    $ vi solr.xml

    将此粘贴到新文件中:

    <code>
    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="/solr/example/solr.war" debug="0" crossContext="true" >
       <Environment name="solr/home" type="java.lang.String" value="/solr/example/solr" override="true" /> 
    </Context>
    </code>

    您应该自定义的两个值是Context :: docBase(指向.war文件)和Environment :: value(指向solr目录)。请注意,在此示例中,.war文件位于solr目录中,这是一个很好的模式。

    { Escape依次按:w}和},然后按{Escape键,然后:q}

  6. 轻松使用WHM重新启动Tomcat。它在重启服务下。然后去这里:

    yourdomainname.com:8080/solr/admin

    您可能会收到此错误:

    false为null ----------------------------------------------- -------------- java.lang.RuntimeException:java.io.IOException:无法创建目录:org.apache.solr.core.SolrCore上的/ usr / share / solr / data / index org.apache.solr.core.SolrCore。(SolrCore.java:546)的.initIndex(SolrCore.java:398)...

    不要惊慌 我加奇!

    再去solrconfig.xml一次

    $ cd /solr/example/solr/conf
    $ vi solrconfig.xml

    并修改此行:

    <!--<dataDir>${solr.data.dir:./solr/data}</dataDir>-->

    <dataDir>${solr.data.dir:./solr/data}</dataDir>

    再次重新启动Tomcat并转到此处:

    yourdomainname.com:8080/solr/admin

    如果您还没有这样做,请这样做:

    转到中的schema.xml文件/lib/solr/example/solr/conf

    $ vi schema.xml

    在下面的部分中添加<field>

      <field dest="host" source="host"/>
      <field dest="segment" source="segment"/>
      <field dest="boost" source="boost"/>
      <field dest="digest" source="digest"/>
      <field dest="tstamp" source="tstamp"/>

    保存并退出{Press EscapeButton):w(按 Enter),然后退出(Press EscapeButton):q(按 Enter

    如果您使用的是Nutch,请转到此处并安装/配置nutch

对于Drupal 6.x中的Apachesolr,请参阅:在Tomcat6和Ubuntu上使用Apache Solr设置Drupal6.x


1

只要您有支持它的模块,所有solr版本都可以与Drupal一起使用。

例如,Apachesolr模块具有以下配置文件:Solr:3.x和4.x。

对于Search API Solr Search模块,您可以找到Solr 的配置文件:3.x,4.x和5.x,因此这不是问题。

如何安装Solr,这是另一回事。有很多方法可以做到这一点。以下是几个例子。

安装

OS X

最简单的方法是使用Homebrew安装最新的Apache Solr,例如:

brew install solr
ln -sfv /usr/local/opt/solr/*.plist ~/Library/LaunchAgents
brew services start solr # Or just: solr start

现在可以从以下位置访问已安装的Solr实例:http:// localhost:8983 /

Debian / Ubuntu

最简单的方法是通过apt以下方式安装Solr :

sudo apt-get install solr-tomcat

通过木偶

使用Puppet清单安装Solr。这是一个solr4-tomcat.pp示例。

手动(4.x或5.x)

$ VER=4.10.4 # Solr version.
$ TOMCAT_BASE=/var/lib/tomcat7
$ sudo apt-get install tomcat7 tomcat7-admin
$ sudo sed -i.org 's|port=\"8080\"|port=\"8983\"|g' /etc/tomcat?/server.xml
$ sudo mkdir -p /opt/solr/home/collection1/conf /opt/solr/data
$ cd /opt/solr
$ curl -s http://archive.apache.org/dist/lucene/solr/$VER/solr-$VER.tgz | sudo tar zxvf -
$ sudo cp -v /opt/solr/solr-$VER/dist/solr-$VER.war $TOMCAT_BASE/webapps/solr.war
$ sudo cp -v /opt/solr/solr-$VER/example/lib/ext/*.jar /opt/solr/solr-$VER/dist/solrj-lib/*.jar /opt/solr/solr-$VER/example/resources/log4j.properties $TOMCAT_BASE/webapps/solr/WEB-INF/lib
$ curl -s http://ftp.drupal.org/files/projects/search_api_solr-7.x-1.x-dev.tar.gz | sudo tar zxvf -
$ sudo cp -v search_api_solr/solr-conf/4.x/* home/collection1/conf/
$ sudo /etc/init.d/tomcat7 restart

检查它是否在以下位置工作:http:// localhost:8983


也可以看看:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.