2011-07-11 7 views
7

Tôi có một chỉ mục hiện có bằng cách sử dụng apache solr 1.4.Nâng cấp chỉ số 1,4 lên solr 3,3?

Tôi muốn sử dụng chỉ mục hiện tại này trong phiên bản 3.3. Như bạn biết định dạng chỉ mục được thay đổi sau 3.x, vậy làm cách nào để thực hiện điều này?

Tôi đã xuất chỉ mục hiện tại (có trong phiên bản 1.4) bằng cách sử dụng Luke sang XML.

Trả lời

7

Có hai cách để làm điều này:

  1. nếu chỉ số của bạn là được tối ưu hóa, sau đó chỉ cần tối ưu hóa nó - điều này sẽ nâng cấp các định dạng tập tin trên đường đi.

  2. nếu chỉ mục của bạn đã được tối ưu hóa, bạn không thể thực hiện việc này. Thay vào đó, sử dụng công cụ dòng lệnh cung cấp với Solr (đường dẫn của bạn có thể khác nhau từ mỏ

    java -cp work/Jetty_0_0_0_0_8983_solr.war__solr__k1kf17/webapp/WEB-INF/lib/lucene-core-3.3.0.jar org.apache.lucene.index.IndexUpgrader -verbose /path/to/index/directory 
    

Tuy nhiên, lưu ý rằng điều này chỉ thay đổi định dạng tập tin - nó sẽ không dừng lại cảnh báo không dùng nữa vì trừ khi bạn nói với nó cách khác, solrconfig.xml mặc định là vẫn giả sử bạn đang sử dụng một định dạng chỉ số cũ thấy http://www.mail-archive.com/[email protected]/msg23233.html

bạn vẫn có thể nhận được rất nhiều dòng như thế này trong logfile của bạn:.

WARNING: LowerCaseFilterFactory is using deprecated LUCENE_24 emulation. You should at some point declare and reindex to at least 3.0, because 2.x emulation is deprecated and will be removed in 4.0 

cho đến khi bạn nói với solrconfig.xml rằng bạn đã sẵn sàng sử dụng tất cả các tính năng của định dạng chỉ mục mới. Bạn thực hiện việc này bằng cách thêm phần sau vào tệp solrconfig.xml (ở cấp cao nhất, ngay sau thiết lập abortOnConfigurationError).

<!-- Controls what version of Lucene various components of Solr 
    adhere to. Generally, you want to use the latest version to 
    get all bug fixes and improvements. It is highly recommended 
    that you fully re-index after changing this setting as it can 
    affect both how text is indexed and queried. 
    --> 
<luceneMatchVersion>LUCENE_33</luceneMatchVersion> 
0

Nếu bạn có dữ liệu: cách tốt nhất là lập chỉ mục tất cả dữ liệu mới trong solr 3.3 Bạn có thể sử dụng trình xử lý nhập dữ liệu để lập chỉ mục các tệp XML đã xuất của bạn.

Nếu xây dựng một chỉ số mới không phải là một giải pháp cho bạn, bạn đã có khả năng khác nhau:

Theo như tôi biết, Solr 3.3 có thể đọc chỉ số cũ. Vì vậy, một ý tưởng có thể sử dụng phân đoạn. Một phân đoạn cho dữ liệu cũ (chỉ đọc) một phân đoạn khác cho dữ liệu mới. Thật không may, trong giải pháp này, bạn sẽ không thể sửa đổi dữ liệu cũ.

+0

1.I sao chép schema.xml cũ (1,4 v) đến máy chủ mới (3.3) 2. Tôi sao chép chỉ số cũ sang thư mục chỉ số mới trong 3.3 và khởi động lại máy chủ, mọi thứ diễn ra tốt đẹp! Điều kỳ lạ là tôi đã đọc ở đâu đó trong bản ghi chú phát hành 3.3 rằng cấu trúc chỉ mục mới không tương thích với các cấu trúc cũ ... Dù sao, tôi vui vì mọi thứ đã ổn :) –

+0

"rằng cấu trúc chỉ mục mới là không tương thích với những cái cũ "... vâng ... tôi đoán, đúng vậy. Nhưng tôi nghĩ rằng, hệ thống 3.3 của bạn đang chạy trong một cái gì đó giống như một "chế độ tương thích" và không sử dụng định dạng chỉ mục mới. Có lẽ, chỉ mục của bạn vẫn là 1.4, không được hỗ trợ trong lucene 4 - nếu bạn nghĩ về nâng cấp trong tương lai. –

+0

Bạn nói đúng, nhưng làm thế nào để nâng cấp? Đây là câu hỏi chính của tôi. –