2012-08-21 28 views
8

Tôi phải thực hiện chỉ mục Solr vào Sitecore và tôi muốn biết cách tiếp cận tốt nhất là gì?Làm thế nào để thực hiện Solr vào Sitecore

Tôi nhìn cách tiếp cận sau:

  1. Capture công bố kết thúc sự kiện (hoặc các sự kiện khác) và sau đó đẩy mục để Solr index
  2. Thực hiện cơ sở dữ liệu bánh xích tùy chỉnh và có được tất cả những thay đổi từ bảng lịch sử. Sau đó, sử dụng dữ liệu đẩy chỉ mục tùy chỉnh thành solr.

Cách tiếp cận thứ hai có vẻ giống như một cách để đi (theo ý kiến ​​của tôi). Trong trường hợp này, tôi có cần tạo chỉ mục tìm kiếm mới hoặc trình quản lý tìm kiếm không?

Nếu có ai thực hiện nó trước đây, bạn có thể chỉ cho tôi đi đúng hướng không? Ngoài ra, nếu bạn có thể đăng một số liên kết đến các bài viết về triển khai sitecore-solr.

CẬP NHẬT Ok, sau khi đọc tài liệu Sitecore đây là những gì tôi đã đưa ra:

  1. Tạo lớp SolrConfiguration tùy chỉnh của bạn, nơi bạn có thể thiết lập các thuộc như solrserviceurl, thêm chỉ số và định nghĩa của nó (Solr tùy chỉnh chỉ số)

  2. Tạo SolrIndex và thêm nó (trong tệp cấu hình) vào SolrConfiguration của bạn. Mà instantiating, solrindex nên đăng ký để AddEntry sự kiện của Sitecore History Manager, và giao tiếp với trình thu thập solr.

  3. Tạo bộ xử lý tùy chỉnh và móc vào đường dẫn khởi tạo sitecore. Xử lý nên khởi SolrConfiguration (từ bước 1)

  4. Kể từ khi tất cả mọi thứ trong cấu hình của bạn nộp ở sẽ được xây dựng sử dụng refrection, bạn có thể nhận thể hiện của cofiguration của bạn dựa trên tập tin cấu hình của bạn

Làm thế nào để âm thanh như. Tôi có thể có bất kỳ ý kiến ​​xin vui lòng?

Trả lời

2

Chúng tôi đã làm điều này trên một vài trang web và có xu hướng để có một chỉ số mới "xuất bản" Solr và chỉ số "chưa công bố"

Chúng tôi ngắt lời:

OnItemSaving

tổ chức sự kiện để đẩy những thứ vào chỉ mục chưa được xuất bản (bạn có thể không cần điều này, nó phụ thuộc nếu bạn muốn mọi thứ ở chế độ xem trước)

OnPublishItemProcessed

Chúng tôi xử lý bổ sung và cập nhật chỉ số được công bố ở đây, tôi không chắc chắn những gì chúng ta làm gì ở đây mà không xóa đào đúng vào mã nhưng chắc chắn đối phó với xóa trên OnItemDelete (đề cập dưới đây)

OnItemDelete

chúng tôi ngắt vào đây để loại bỏ những thứ từ các chỉ số được công bố và không công bố (tôi nghĩ chúng ta loại bỏ từ chỉ số được công bố ở đây vì Sitecore làm cho bạn xuất bản các nút cha để xuất bản ra xóa cơ sở dữ liệu web)

Tôi hy vọng rằng sẽ giúp, tôi sẽ gửi mã nếu tôi có thể (nhưng tôi sẽ được cau có).

+0

Xin chào, tôi thích cách tiếp cận này. Đề nghị nói rằng các sự kiện nên được sử dụng cho các hoạt động liên quan đến mục đơn giản, nhanh chóng (đúng với tôi nếu tôi sai). Tôi biết nó hoạt động tốt nếu bạn đăng ký các sự kiện và cập nhật chỉ số solr của bạn, nhưng điều đó có bất kỳ vấn đề hiệu suất nào không? –

+0

Chúng tôi đã không có bất kỳ vấn đề hiệu suất nào được báo cáo lại và nó đã triển khai một số trang web lớn mà chúng tôi đã làm việc (có rất nhiều nội dung). –

+0

Tôi đã không xem xét điều này trong bất kỳ chi tiết nào được nêu ra nhưng https://github.com/jerrong/Sitecore-Item-Buckets này trông rất, rất thú vị thực sự và có thể là giá trị bạn điều tra. (Ahhh có vẻ như nó chỉ là Sitecore 6.5 nhưng điều đó vẫn có thể tốt cho bạn?) –

2

Ngoài câu trả lời đã đăng (mà tôi nghĩ là một cách hay để làm việc), tôi sẽ chia sẻ cách chúng tôi thực hiện.

Về cơ bản, chúng tôi chỉ xem xét trình thu thập thông tin cơ sở dữ liệu Sitecore và quyết định làm mọi thứ giống như cách thực hiện nó.

Chúng tôi sử dụng phiên bản sửa đổi Custom Item Generator để tạo điều kiện ánh xạ giữa các đối tượng được nhập mạnh và đối tượng có thuộc tính tương ứng với lược đồ Solr của chúng tôi. Để liên lạc thực tế với Solr, chúng tôi sử dụng SolrNet.

Ý tưởng chung là chúng tôi lặp qua tất cả các mục (bắt đầu với trang gốc) đệ quy và ánh xạ chúng tới loại thích hợp dựa trên mẫu của nó. Sau đó, chúng tôi đi qua một quá trình lập chỉ mục cho mục đó (một số mục cần lập chỉ mục nhiều tài liệu cho Solr trong việc triển khai của chúng tôi).

Cách tiếp cận này hoạt động rất tốt cho chúng tôi ngoại trừ tôi sẽ lưu ý rằng vì chúng tôi lập chỉ mục mọi thứ cùng một lúc, nó có xu hướng giới thiệu một chút thời gian trễ giữa xuất bản và trang web phản ánh bất kỳ thay đổi nào được thực hiện cho chỉ mục. Một giám sát mà chúng tôi đã thực hiện ngay từ đầu nhưng sẽ sớm nỗ lực để khắc phục là chúng tôi không có chỉ mục "chưa được xuất bản" (nghĩa là chúng tôi cần xuất bản trang web để xem các cập nhật). Nó không ảnh hưởng đến giải pháp của chúng tôi nhiều lắm, nhưng tôi chắc chắn có thể thấy nó sẽ ở đâu, vì vậy hãy ghi nhớ điều đó.

Chúng tôi không đặc biệt muốn xóa các mục khỏi chỉ mục để chúng tôi lập chỉ mục dưới dạng sự kiện kết thúc: xuất bản.

Tôi hy vọng thông tin chi tiết bổ sung này sẽ giúp bạn. Theo như tôi biết không có nhiều thông tin về sự kết hợp cụ thể của sản phẩm này, nhưng tôi có thể nói với bạn rằng nó chắc chắn có thể và khá hữu ích.

+0

Điều đó cũng hoạt động (thử nghiệm phương pháp này), nhưng nó không có vẻ đúng - trình thu thập dữ liệu phải được thêm vào chỉ mục (đó là một sự sáng suốt chỉ số), có nghĩa là bạn sẽ tiếp tục cập nhật 2 chỉ mục ... hoặc sau khi cập nhật chỉ mục solr của bạn, bạn hủy công việc và do đó bản ghi sẽ không được thêm vào chỉ mục lucene sitecore của bạn? –

+0

Việc thực hiện Solr hoạt động độc lập với chỉ số Sitecore Lucene. Để làm rõ, chúng tôi chỉ lấy trình thu thập dữ liệu làm nguồn cảm hứng (cụ thể là cách tiếp cận để thu thập các mục để lập chỉ mục). Chúng tôi không chủ động sử dụng chỉ mục Sitecore Lucene cho bất kỳ thứ gì. Như tôi đã nói trước đây, chúng tôi chỉ thực sự có một chỉ mục (sẽ thêm một chỉ mục thứ hai trong tương lai) và thông qua cấu hình, chúng tôi yêu cầu nó lập chỉ mục cơ sở dữ liệu web. –

+0

Bạn có nhận thấy bất kỳ vấn đề về hiệu suất nào không? Ngoài ra, bạn đã xử lý chỉ mục xây dựng lại như thế nào? –

Các vấn đề liên quan