2010-04-26 38 views
13

Tôi đã dành tất cả buổi sáng cố gắng để thiết lập nhiều lõi trên một cài đặt SOLR chạy dưới máy chủ Apache Tomcat mà không thành công. My solr.xml trông giống như sau:Tomcat SOLR đa lõi thiết lập

<solr persistent="false" sharedLib="lib"> 
    <cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="/multicore/core0"> 
     <property name="dataDir" value="/multicore/core0/data" /> 
    </core> 
    <core name="core1" instanceDir="/multicore/core1"> 
     <property name="dataDir" value="/multicore/core1/data" /> 
    </core> 
    </cores> 
</solr> 

Cấu trúc thư mục chính xác là gì? Tôi có cần phải thay đổi gì đó trong tệp solrconfig.xml không?

+0

Phiên bản Tomcat và Apache có liên quan gì? Tôi đang gặp sự cố tương tự, nhưng tôi không thể xác định được các tệp hoặc cài đặt cấu hình này. Tôi đang ở trên Tomcat6, Solr 3.6, Ubuntu. –

Trả lời

10

Kiểm tra giá trị instanceDir của bạn có liên quan đến -Dsolr.solr.home không. Nếu -Dsolr.solr.home là 'đa lõi', thì instanceDir của bạn sẽ chỉ là "core0".

Nếu bạn đặt thư mục dữ liệu của bạn trong instanceDir của bạn, bạn không cần phải chỉ định đường đi của nó:

<?xml version='1.0' encoding='UTF-8'?> 
<solr persistent="true"> 
<cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="core0" /> 
    <core name="core1" instanceDir="core1" /> 
</cores> 
</solr> 

Bạn không cần phải cài đặt bất cứ điều gì trong solrconfig.xml. Nhưng nếu bạn cần cấu hình một trình xử lý độc lập với vị trí cốt lõi, bạn có thể sử dụng biến $ {solr.core.instanceDir}.

CẬP NHẬT

Để đặt biến solr.solr.home với Tomcat, sử dụng biến môi trường JAVA_OPTS trước khi bắt đầu Tomcat:

JAVA_OPTS="-Dsolr.solr.home=multicore" 
export JAVA_OPTS 
tomcat/bin/catalina.sh start 

Hãy chắc chắn rằng "đa lõi" được thiết lập một cách chính xác liên quan đến thư mục làm việc. Ví dụ, nếu solr.solr.home = 'multicore', bạn phải khởi động Tomcat từ thư mục chứa "đa lõi".

+0

Cảm ơn bạn đã trả lời nhanh Pascal. Làm thế nào tôi có thể kiểm tra những gì solr.solr.home của tôi là gì? Tôi đang chạy solr trên Tomcat và không phải Jetty vì vậy không thể thiết lập điều đó trên dòng lệnh khi chạy start.jar. Tôi thử tệp solr.xml ở trên nhưng vẫn gặp phải lỗi sau khi cố gắng truy cập http: // devel: 12345/solr/core0/admin/ loại Báo cáo trạng thái message/solr/core0/admin/ mô tả Yêu cầu tài nguyên (/ solr/core0/admin /) không có sẵn. Bất kỳ ý tưởng nào có thể là nó? – Sfairas

+0

Với Tomcat, bạn có thể sử dụng biến môi trường JAVA_OPTS để thiết lập -Dsolr.solr.nhà trước khi gọi kịch bản catalina. –

+0

OK Tôi đặt JAVA_OPTS = '- Dsolr.solr.home = multicore' nhưng vẫn không thể làm cho nó hoạt động. Tôi biết rằng đó là một vấn đề cấu hình nhưng tôi không thể tìm ra những gì tôi đang thiếu ở đây. – Sfairas

6

Đây là loại cuối trong game, nhưng tôi chỉ đưa ra một bài viết trên blog với instructions for a multicore SOLR instance on Tomcat mà đọc:

  1. download và cài đặt phiên bản 32-bit/64-bit Windows Service Installer cho Tomcat
  2. cài đặt Tomcat trên máy chủ (không hướng dẫn đặc biệt ở đây - chỉ cần chạy trình cài đặt và cài đặt bất cứ nơi nào bạn muốn )
  3. đã xác minh việc lắp đặt Tomcat bằng cách vào http: // localhost: 8080
  4. Sửa Tomcat của conf/server.xml và thêm URIEncoding = "UTF-8" đến > yếu tố < kết nối như trình bày ở đây
  5. Tải Solr từ một trong những gương tìm thấy ở đây   (tải về apache-Solr-1.4.1 .zip gói) và giải nén gói
  6. Tạo một thư mục nơi Solr sẽ được tổ chức từ (trong trường hợp của tôi, tôi sử dụng e: \ inetpub \ Solr)
  7. Sao chép các nội dung của thư mục dụ \ Solr để bạn thư mục lưu trữ SOLR (trong trường hợp của tôi là e: \ inetpub \ solr)
  8. Cr ăn thư mục trong thư mục lưu trữ SOLR của bạn cho mỗi lõi bạn muốn tạo (tôi đã tạo ra một tá thư mục cho mỗi lõi mà tôi muốn để tạo trong thư mục e: \ inetpub \ solr.   Các thư mục bao gồm en-US, en-CA, en-GB, v.v.)
  9. Sao chép solr.xml tập tin từ dụ \ thư mục đa lõi và dán nó vào thư mục chủ Solr của bạn (e: \ inetpub \ Solr ví dụ của tôi)
  10. Sửa file solr.xml để bao gồm các thông tin cho mỗi của lõi mà bạn đã tạo (nếu bạn đã tạo một thư mục dưới máy chủ của bạn cho một lõi có tên en-US, sau đó thêm dòng sau dưới < lõi > phần tử trong solr.xml file: < đồng tái name = "en-US" instanceDir = "en-US"/>)
  11. dừng dịch vụ Tomcat
  12. Sao chép * Solr file * .WAR từ các   quận thư mục trong giải nén Solr gói để bạn Tomcat webapps thư mục
  13. Đổi tên * Solr * .WAR tập tin để solr.war
  14. trong lĩnh vực thông báo ở phía bên phải của thanh tác vụ Windows, nhấp chuột phải vào các Apache Tomcat 7 Biểu tượng và chọn Configure
  15. Nhấp vào Java tab và thêm dòng sau vào các Java Tùy chọn văn bản hộp: -Dsolr.solr.home = e: \ inetpub \ Solr (thay đổi e: \ inetpub \ Solr đến bất cứ nơi nào Solr của bạn đang được lưu trữ)
  16. Bấm OK trong hộp thoại và sau đó khởi động Tomcat dịch vụ
  17. mở conf \ solrconfig.xml file dưới mỗi lõi bạn đã tạo và thay đổi thành phần dataDir để trỏ đến thư mục cụ thể.   Nếu bước này không hoàn thành, tất cả các lõi của bạn sẽ đang sử dụng cùng một kho dữ liệu cho dữ liệu của họ.
  18. Dừng và khởi động lại Dịch vụ Tomcat
  19. Kiểm tra xem lõi của bạn có đang chạy bằng cách chạy truy vấn từ trình duyệt web http: // localhost: 8080/solr/en-US/select? Q = *: *   (thay thế "en-US" bằng bất kỳ thứ gì bạn đã đặt tên cho một trong các lõi của mình)
Các vấn đề liên quan