2009-06-27 30 views

Trả lời

0

Cách đơn giản nhất để cải thiện hiệu suất lập chỉ mục của Lucene là điều chỉnh giá trị của biến thể mẫu mergeFactor của IndexWriter. Giá trị này cho Lucene biết có bao nhiêu tài liệu lưu trữ trong bộ nhớ trước khi ghi chúng vào đĩa, cũng như tần suất hợp nhất nhiều phân đoạn với nhau.

http://search-lucene.blogspot.com/2008/08/indexing-speed-factors.html

3

Tôi đã viết một bài đăng khủng khiếp về cách song song một chỉ mục Lucene. Nó thực sự được viết một cách khủng khiếp, nhưng bạn sẽ tìm thấy nó here (có một số mã mẫu mà bạn có thể muốn xem).

Dù sao đi chăng nữa, ý tưởng chính là bạn chia dữ liệu của mình thành các phần có kích thước lớn và sau đó làm việc trên từng phần trên một chuỗi riêng biệt. Khi mỗi phần được thực hiện, bạn kết hợp chúng thành một chỉ mục duy nhất.

Với cách tiếp cận được mô tả ở trên, tôi có thể lập chỉ mục hơn 4 triệu bản ghi trong xấp xỉ. 2 giờ.

Hy vọng điều này mang đến cho bạn ý tưởng về nơi cần đi từ đây.

+0

Hi Esteban Cảm ơn bạn đã phản hồi. Tôi đang tìm kiếm một cái gì đó tương tự như những gì bạn đã làm. Bạn có thể vui lòng đăng một số đoạn mã trong blog của mình không. Cảm ơn, Gokul – Gokul

1

Ngoài mặt viết (yếu tố hợp nhất) và khía cạnh tính toán (song song) điều này đôi khi do những lý do đơn giản nhất: đầu vào chậm. Nhiều người xây dựng một chỉ số Lucene từ một cơ sở dữ liệu dữ liệu. Đôi khi bạn thấy rằng một truy vấn cụ thể cho dữ liệu này quá phức tạp và chậm để thực sự trả lại tất cả (2 triệu?) Bản ghi nhanh chóng. Chỉ thử truy vấn và ghi vào đĩa, nếu nó vẫn theo thứ tự 5-9 giờ, bạn đã tìm thấy một nơi để tối ưu hóa (SQL).

1

Bài viết sau đây thực sự đã giúp tôi khi tôi cần thiết để điều tốc độ lên:

http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

tôi thấy rằng việc xây dựng tài liệu là nút cổ chai chính của chúng tôi. Sau khi tối ưu hóa truy cập dữ liệu và triển khai một số đề xuất khác, tôi có thể tăng đáng kể hiệu suất lập chỉ mục.

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