Tôi đang cố gắng tạo ra một bản thu nhỏ khoảng 2 triệu bản ghi. Thời gian lập chỉ mục là khoảng 9 giờ. Bạn có thể đề xuất cách tăng hiệu suất không?Làm thế nào để: Tăng tốc độ lập chỉ mục Lucene .net
Trả lời
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
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.
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).
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.
- 1. Làm thế nào để tăng tốc độ trên SOA?
- 2. Làm thế nào để tăng tốc độ phát triển WPF
- 3. Làm thế nào để tăng tốc độ py.test
- 4. Làm thế nào để tăng tốc độ lein Uberjar Buid
- 5. Làm thế nào để tăng tốc độ vòng python
- 6. Làm thế nào để tăng tốc độ Cygwin?
- 7. Làm thế nào để tăng tốc độ thêm các mục vào một ListView?
- 8. Làm cách nào để tăng tìm kiếm dựa trên loại chỉ mục trong elasticsearch hoặc lucene?
- 9. Làm cách nào để tăng tốc độ cuộn của UIWebView?
- 10. Tăng tốc độ runhaskell
- 11. Tăng tốc độ sqlFetch()
- 12. Lập chỉ mục chính xác các giá trị vĩ độ và kinh độ trong Lucene
- 13. Làm thế nào để tăng tốc các khối hành quân?
- 14. Tăng tốc độ IIS
- 15. Làm thế nào để tăng tốc độ tải DTD qua DOCTYPE
- 16. Tăng tốc độ lập chỉ mục văn bản Oracle hoặc để chỉ mục hoạt động chỉ khi thời gian tải thấp
- 17. Làm thế nào để tăng tốc các chương trình WPF?
- 18. Cách kiểm soát Lập chỉ mục trường trong lucene 4.0
- 19. Làm thế nào để tăng tốc độ tham gia đơn giản
- 20. Làm thế nào để tăng tốc độ biên dịch tài sản cho các bài kiểm tra?
- 21. Có thể giảm và tạo lại chỉ mục tăng tốc độ xóa SQL không?
- 22. Làm thế nào để tăng tốc độ chèn LINQ với SQL CE?
- 23. Làm thế nào để tăng tốc mã Python này?
- 24. Làm thế nào để tăng tốc độ khởi động của Powershell trong môi trường 4.0?
- 25. Làm thế nào để tăng tốc độ một truy vấn UPDATE chậm
- 26. Làm thế nào để tăng tốc độ phát triển Alfresco Share
- 27. Làm thế nào để pgBouncer giúp tăng tốc Django
- 28. Làm thế nào để tăng tốc độ BitBlt để chụp màn hình với aero?
- 29. Làm thế nào tôi có thể tăng tốc độ chế độ DocView Emacs?
- 30. C# Entity Framework + LINQ - làm thế nào để bạn tăng tốc độ truy vấn chậm?
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