Cài đặt và tương thích Apache Solr 4.6.0 với Drupal7


14

Tôi đang gặp khó khăn khi cài đặt Apache Solr. Phiên bản mới nhất mà tôi đã tải xuống là 4.6.0. Nhưng tất cả các tài liệu và hướng dẫn về Drupal (xem http://www.youtube.com/watch?v=ori-VvvH1Aw ) đang nói về 3.5.0. Mặc dù không tìm thấy 3.5.0 trên internet, 4.6.0 có cấu trúc thư mục hoàn toàn khác và không có tài liệu nào về cách cài đặt phiên bản mới nhất này trên máy chủ hoặc trên WAMP cục bộ. Không có đề cập đến phiên bản Apache Solr nào được khuyên dùng nhất để làm việc với Drupal? Có ai giúp đỡ không?


Có một bài viết tuyệt vời ở đây: lullabot.com/blog/article/installing-solr-use-drupal Điều này làm việc cho tôi vào ngày 4.5.1. Nếu bạn muốn sử dụng API tìm kiếm Solr thì tôi đã viết một bản cài đặt ví dụ cho Ubuntu 12.04 tại đây: drupal.org/node/2143715
Dominic Woodman

Câu trả lời:


21

Bạn không đơn độc tôi phải lùng sục trên mạng và đọc một vài bài báo trước khi tôi thực sự hiểu tất cả những điều này. Tôi đã thử về ba phương pháp khác nhau cho đến khi cuối cùng tôi đã hiểu đúng!

Nếu bạn đang sử dụng Debian / Ubuntu (với Tomcat7), điều đó thậm chí còn dễ dàng hơn nữa. Tôi thích cái này hơn Lullabot vì khi bạn cài đặt nó qua Ubuntu nó thực sự là một dịch vụ và ít gây khó chịu hơn :)

Cài đặt Java

apt-get install java7-jdk

Cài đặt Tomcat

apt-get install tomcat7 tomcat7-admin

Một khi điều này được thực hiện, bạn có thể nhận được http://localhost:8080và thấy rằng tất cả đang chạy đúng.

Lưu ý: Nên đẩy cổng sang cổng khác vì 8080 là khá phổ biến. Nếu bạn muốn làm điều đó hãy sử dụng mã này cho điều đó!

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

Cấu hình Tomcat

  1. Bạn sẽ thực sự muốn tạo một tài khoản người dùng cho Tomcat để người khác phải đăng nhập vào quản trị viên (nó sẽ giữ an toàn hơn).

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

  2. Sau đó thêm các đối số xml giữa các <tomcat-users>thẻ

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

  3. Bây giờ bạn có thể khởi động lại tomcat và xem trang quản trị tại http://localhost:8983/manager/html

    service tomcat7 restart

Cài đặt Solr

  1. Tải xuống ApacheSolr mới nhất tại đây (Khi tôi viết bài này, tôi đã làm cho nó hoạt động với 4.7)

  2. Trích xuất các tập tin vào một thư mục

Sao chép tệp thư viện Solr

Tiếp theo chúng tôi muốn thêm các tệp thư viện vào thư mục thư viện Tomcat. Lưu ý: Bạn cũng có thể sử dụng symlink nếu muốn, nhưng với mục đích hiểu mọi thứ diễn ra ở đâu, tôi đã chọn đặt nó trực tiếp trong các thư mục

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

Nó cũng có thể là một ý tưởng tốt để sao chép các thư viện java từ solr / dist / solrrj-lib / *

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

Sao chép tập tin ứng dụng Solr WAR

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

Thiết lập lõi Drupal ApacheSolr

  1. Trước tiên chúng ta cần sao chép các tệp cấu hình mẫu từ ApacheSolr.

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

  2. Tiếp theo lấy phiên bản mới nhất của mô-đun apachesolr https://drupal.org/project/apachesolr và giải nén nó

    tar xvf apachesolr-*.tar.gz

  3. Đồng bộ hóa các tệp cấu hình apachesolr (cho Drupal) với cấu hình solr của bạn

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

Lưu ý: Tôi đã tìm thấy một lỗi trong đó ApacheSolr từ chối bắt đầu do lỗi trùng lặp. Tôi đã báo cáo rằng ở đây vì vậy bạn có thể muốn xem xét giải pháp ở đây vì tại thời điểm viết bài này, tôi không thể chạy nó mà không có nó!

  1. Tạo một tệp định nghĩa cốt lõi để báo cho Apache Solr biết lõi nào có sẵn.

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

  2. Dán đoạn mã sau vào tập tin đó

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

Tạo thư mục lõi Drupal

Điều này sẽ tạo ra một lõi mới trong hệ thống của bạn với tên đó. Nếu bạn muốn thêm nhiều hơn, bạn chỉ cần lặp lại bước này cũng như bước trên.

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

Hãy làm cho nó sống

  1. Của bạn ở đoạn cuối !! Hãy để tomcat7 đi ngủ

    service tomcat7 stop

  2. Bây giờ thay đổi quyền trên thư mục tomcat

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

  3. Bắt đầu sao lưu

    service tomcat7 start

Nó đang sống

Bạn sẽ có thể đi đến http://localhost:8983/solrvà xem một ví dụ cốt lõi mới có sẵn! Bây giờ bạn có thể tiếp tục và cấu hình drupal để chỉ ra điều đó.

Lưu ý: Lõi mới của bạn được đặt tại http://localhost:8983/solr/!!yourcorename!!để được sử dụng trong mô-đun Drupal ApacheSolr.

Tín dụng và đạo cụ đi ra Pacoup


1
Hướng dẫn tuyệt vời. Trong "configure Tomcat", nó thiếu xml ở bước 2: "Sau đó, thêm các đối số xml này vào giữa các thẻ" ... không có xml nào được đưa ra.
Jordan Magnuson

Hmm nó ở đó nhưng bạn không thể thấy nó có thể là nguyên nhân của trình duyệt của bạn? Hãy để tôi thử và thay đổi đầu ra để khắc phục điều đó
shaneonabike

Trên thực tế tôi chỉ kiểm tra và tôi đang sử dụng các thẻ mã thích hợp?
shaneonabike

Xem ảnh chụp màn hình: i.imgur.com/s1jlunf.png
Jordan Magnuson

Tôi sửa nó rồi. Mã xml cần được đặt giữa ``
Jordan Magnuson

1

Các thay đổi đối với Solr 4 đã được thảo luận trong hàng đợi vấn đề: https://drupal.org/node/1676224

Vấn đề này chứa một số liên kết đến các trang web và hướng dẫn về hộp cát.


1

Đây là cách nó được mô tả trong Tài liệu cộng đồng Drupal ( Cài đặt Solr trên Tomcat ):

CentOS

Hướng dẫn này giả định rằng bạn đã cài đặt Tomcat. Nếu bạn không có lẽ dễ dàng hơn chỉ cần sử dụng WHM và cài đặt nó ở đó và xây dựng lại apache. Điểm và nhấp là những gì tôi nói.

Khi bạn đã cài đặt Tomcat, bạn có thể xác minh cài đặt của nó bằng cách truy cập:

domain.com:8080 

Bạn sẽ thấy trang Tomcat mặc định. Nếu không, hãy nhờ ai đó giúp đỡ. Nếu bạn không, bạn đang làm tổn thương người tiếp theo gặp vấn đề tương tự. Nếu chúng tôi không muốn giúp, chúng tôi sẽ không là Nguồn mở.

Tải xuống bản sao của Solr. Nếu bạn không biết lấy nó ở đâu, hãy google nó.

Để làm cho mọi thứ dễ dàng hơn bây giờ và trong tương lai, hãy tìm bản cài đặt Tomcat của bạn

$ locate tomcat

Tạo một liên kết mềm như vậy:

ln -s /my/tomcat/location /tomcat

Nếu bạn đã làm đúng, bạn sẽ có thể

$ /tomcat

trong sshd và đến thư mục của bạn.

Tôi sẽ sử dụng /libthư mục cho ví dụ của tôi. Nếu bạn không có, hãy tạo nó bằng mkdir /liblệnh.

  1. Trích xuất Solr đến vị trí tạm thời, vì lợi ích của tôi, tôi chỉ cần lấy tệp zip từ gương Solr.

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

    Xây dựng Solr của bạn

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Đổi tên tập tin chiến tranh của bạn để dễ sử dụng.

    $ 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. Sao chép solr.warvào/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. Sao chép các tệp xml từ vị trí apachesolr của bạn. Thông thường nó sẽ là:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Tạo một tệp xml trong Tomcat để bảo nó chạy Solr khi khởi động Tomcat

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

    Dán tệp này vào tệp mới của bạn:

    <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>

    Hai giá trị bạn nên tùy chỉnh là Context :: docBase (để trỏ đến tệp .war của bạn) và môi trường :: value (để trỏ đến thư mục solr của bạn). Lưu ý rằng trong ví dụ này, tệp .war nằm trong thư mục solr, đây là một mẫu tốt để theo dõi.

    {Nhấn Escapevà sau đó :w} và sau đó {Nhấn phím Escape và sau đó :q}

  6. Khởi động lại Tomcat bằng WHM cho dễ. Đó là trong Dịch vụ khởi động lại. Sau đó vào đây:

    yourdomainname.com:8080/solr/admin

    Bạn có thể gặp lỗi này:

    sai trong null ----------------------------------------------- -------------- java.lang.R nbException: java.io.IOException: Không thể tạo thư mục: / usr / share / solr / data / index tại org.apache.solr.core.SolrCore .init Index (SolrCore.java:398) tại org.apache.solr.core.SolrCore. (SolrCore.java giáp46) tại ...

    Đừng hoảng sợ. Tôi gatcha!

    Đi đến solrconfig.xmlmột lần nữa

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

    và sửa đổi dòng này:

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

    đến

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

    Khởi động lại Tomcat một lần nữa và vào đây:

    yourdomainname.com:8080/solr/admin

    HÃY NÀY NẾU BẠN ĐÃ CỐ GẮNG:

    Chuyển đến tệp lược đồ của bạn trong /lib/solr/example/solr/conf:

    $ vi schema.xml

    Thêm phần này vào phần ngay sau <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"/>

    Lưu nó và thoát {Nhấn Escapenút) :w(Bấm Enter) sau đó (Nhấn Escapenút) :q(Nhấn Enter)

    Nếu bạn đang sử dụng Nutch thì hãy vào đây và cài đặt / cấu hình nutch .

Đối với Apachesolr trong Drupal 6.x, hãy xem: Thiết lập Drupal 6.x với Apache Solr trên Tomcat6 và Ubuntu .


1

Tất cả các phiên bản solr sẽ hoạt động với Drupal miễn là mô-đun hỗ trợ nó.

Ví dụ mô-đun Apachesolr , có các tệp cấu hình cho: Solr: 3.x và 4.x.

Đối với mô-đun Tìm kiếm API Solr Tìm kiếm , bạn có thể tìm thấy các tệp cấu hình cho Solr: 3.x, 4.x và 5.x, vì vậy đây không phải là vấn đề.

Cách cài đặt Solr, đó là một điều khác. Có nhiều cách để làm điều đó. Một vài ví dụ dưới đây.

Cài đặt

Hệ điều hành X

Cách đơn giản nhất là cài đặt Apache Solr mới nhất bằng Homebrew, ví dụ:

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

Hiện đã cài đặt phiên bản Solr tại: http: // localhost: 8983 /

Debian / Ubuntu

Cách đơn giản nhất là cài đặt Solr qua apt:

sudo apt-get install solr-tomcat

thông qua con rối

Sử dụng tệp kê khai rối để cài đặt Solr. Đây là một ví dụ solr4-tomcat.pp .

Thủ công (4.x hoặc 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

Kiểm tra xem nó có hoạt động tại: http: // localhost: 8983


Xem thêm:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.