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 Apache รุ่นใดที่แนะนำให้ทำงานกับ Drupal มากที่สุด? ความช่วยเหลือใด ๆ


มีบทความที่ยอดเยี่ยมที่นี่: lullabot.com/blog/article/installing-solr-use-drupalซึ่งทำงานให้ฉันใน 4.5.1 ถ้าคุณต้องการใช้ Search API Solr ฉันก็เขียนตัวอย่างการติดตั้งสำหรับ Ubuntu 12.04 ที่นี่: drupal.org/node/2143715
Dominic Woodman

คำตอบ:


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 เพื่อให้ผู้อื่นต้องเข้าสู่ระบบของผู้ดูแลระบบ (มันจะปลอดภัยกว่า)

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

  2. จากนั้นเพิ่มอาร์กิวเมนต์ xml เหล่านี้ระหว่าง<tomcat-users>แท็ก

    <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 หมายเหตุ:คุณสามารถใช้ symlink ได้ตามต้องการ แต่เพื่อความเข้าใจว่าทุกอย่างถูกต้องฉันเลือกที่จะวางไว้ในไดเรกทอรีโดยตรง

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

มันอาจจะเป็นความคิดที่ดีที่จะคัดลอกไลบรารีของจาวาจาก solr / dist / solrrj-lib / *

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 core

  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. ซิงโครไนซ์ไฟล์การตั้งค่า apachesolr (สำหรับ Drupal) ด้วยการกำหนดค่า solr

    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" ไม่มี xml ในขั้นตอนที่ 2: "จากนั้นเพิ่มอาร์กิวเมนต์ xml เหล่านี้ระหว่างแท็ก" ... ไม่มี xml ที่ระบุ
Jordan Magnuson

อืมอยู่ที่นั่น แต่คุณมองไม่เห็นอาจเป็นสาเหตุของเบราว์เซอร์ของคุณ? ให้ฉันลองและเปลี่ยนผลลัพธ์เพื่อแก้ไขปัญหานี้
shaneonabike

ที่จริงฉันเพิ่งตรวจสอบและฉันใช้แท็กรหัสที่ถูกต้องหรือไม่
shaneonabike

ดูภาพหน้าจอ: i.imgur.com/s1jlunf.png
Jordan Magnuson

ฉันซ่อมมัน. ต้องวางรหัส xml ระหว่าง ``
Jordan Magnuson


1

นี่คือวิธีที่อธิบายไว้ในเอกสารประกอบของชุมชน Drupal ( การติดตั้ง Solr บน Tomcat ):

CentOS

Walk-through นี้จะถือว่าคุณติดตั้ง 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 ไปยังตำแหน่งชั่วคราวเพื่อประโยชน์ของฉันฉันเพิ่งได้รับไฟล์ zip จากมิลเลอร์ Solr

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

    สร้าง Solr ของคุณ

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. เปลี่ยนชื่อไฟล์สงครามของคุณเพื่อความสะดวกในการใช้งาน

    $ 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. คัดลอกไฟล์ xml จากตำแหน่ง apachesolr ของคุณ โดยปกติแล้วจะเป็น:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. สร้างไฟล์ xml ใน Tomcat เพื่อบอกให้รัน Solr เมื่อ Tomcat เริ่มทำงาน

    $ 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. รีสตาร์ท Tomcat โดยใช้ WHM เพื่อความสะดวก อยู่ภายใต้บริการการเริ่มต้นใหม่ จากนั้นไปที่นี่:

    yourdomainname.com:8080/solr/admin

    คุณอาจได้รับข้อผิดพลาดนี้:

    false ใน null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: ไม่สามารถสร้างไดเรกทอรี: / usr / share / solr / data / index ที่ org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) ที่ org.apache.solr.core.SolrCore. (SolrCore.java 5346) ที่ ...

    อย่าตกใจ ฉัน gatcha!

    ไปที่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"/>

    บันทึกและออกจาก {กดEscapeปุ่ม) :w(กด Enter) จากนั้น (กดEscapeปุ่ม) :q(กด Enter)

    หากคุณกำลังใช้นัทช์แล้วไปที่นี่และติดตั้ง / การกำหนดค่านัทช์

สำหรับ Apachesolr ใน Drupal 6.x ดู: การติดตั้ง Drupal 6.x กับ Apache Solr บน tomcat6 และ Ubuntu


1

เวอร์ชัน solr ทั้งหมดควรทำงานกับ Drupal ตราบใดที่คุณมีโมดูลที่รองรับ

ตัวอย่างเช่นโมดูลApachesolrมีไฟล์กำหนดค่าสำหรับ: Solr: 3.x และ 4.x

สำหรับโมดูลค้นหา API การค้นหา Solrคุณสามารถค้นหาไฟล์การกำหนดค่าสำหรับ Solr: 3.x, 4.x และ 5.x ดังนั้นจึงไม่น่าจะมีปัญหา

วิธีการติดตั้ง Solr เป็นอีกสิ่งหนึ่ง มีหลายวิธีในการทำ ตัวอย่างด้านล่าง

การติดตั้ง

OS X

วิธีที่ง่ายที่สุดคือการติดตั้ง Apache Solr ล่าสุดโดยใช้ Homebrew เช่น:

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

วิธีที่ง่ายที่สุดคือการติดตั้ง Solr ผ่านapt:

sudo apt-get install solr-tomcat

ผ่านหุ่นกระบอก

ใช้รายการหุ่นกระบอกเพื่อติดตั้ง 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


ดูสิ่งนี้ด้วย:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.