Tôi đã đọc phần sau đây:Solr điều chỉnh hiệu suất
http://wiki.apache.org/solr/SolrPerformanceFactors
http://wiki.apache.org/solr/SolrCaching
http://www.lucidimagination.com/content/scaling-lucene-and-solr
Và tôi có thắc mắc về một vài điều:
- Nếu tôi sử dụng tùy chọn JVM
-XX:+UseCompressedStrings
loại tiết kiệm bộ nhớ tôi có thể đạt được? Để giữ một ví dụ đơn giản, nếu tôi có 1 trường được lập chỉ mục (chuỗi) và 1 trường được lưu trữ (chuỗi) với omitNorms = true và omitTf = true, tôi có thể mong đợi loại tiết kiệm nào trong bộ nhớ cache của chỉ mục và tài liệu? Tôi đoán khoảng 50%, nhưng có lẽ đó là quá lạc quan. - Khi nào bộ nhớ cache của bộ lọc Solr hoạt động? Nếu tôi chỉ làm một truy vấn đơn giản với AND và một vài OR, và sắp xếp theo điểm số, tôi có cần nó không?
- Nếu tôi muốn lưu vào bộ nhớ cache tất cả tài liệu trong bộ nhớ cache của tài liệu, tôi sẽ tính toán khoảng trống cần thiết như thế nào? Sử dụng ví dụ từ trên, nếu tôi có tài liệu 20M, sử dụng chuỗi đã nén và độ dài trung bình của trường được lưu trữ là 25 ký tự, là khoảng trống cần thiết về cơ bản (25 byte + small_admin_overhead) * 20M?
- nếu tất cả tài liệu nằm trong bộ nhớ cache của tài liệu, bộ đệm truy vấn quan trọng như thế nào?
- Nếu tôi muốn tự động hóa mọi tài liệu vào bộ nhớ cache của tài liệu, truy vấn autowarm sẽ là
*:*
làm điều đó? - Bài viết mở rộng-và-solr nói rằng FuzzyQuery chậm. Nếu tôi đang sử dụng tính năng kiểm tra chính tả của solr thì về cơ bản tôi đang sử dụng quyền truy vấn mờ (vì tính năng kiểm tra chính tả có cùng tính toán khoảng cách chỉnh sửa) không? Vì vậy, có lẽ truy vấn chính tả và truy vấn mờ là cả hai đều "chậm"?
- Phần mô tả bộ nhớ cache trường lucene cho chuỗi là một chút khó hiểu. Tôi đọc nó một cách chính xác rằng không gian cần thiết về cơ bản là kích thước của trường chuỗi được lập chỉ mục + một số nguyên arry bằng số lượng các thuật ngữ duy nhất trong lĩnh vực đó?
- Cuối cùng, dưới tối đa hóa thông lượng, có một tuyên bố về việc để lại đủ không gian cho bộ đệm đĩa của hệ điều hành. Nó nói, "Tất cả trong tất cả, cho một chỉ số quy mô lớn, nó là tốt nhất để chắc chắn rằng bạn có ít nhất một vài gigabyte RAM vượt quá những gì bạn đang đưa cho JVM." Vì vậy, nếu tôi có một máy bộ nhớ 12GB (như một ví dụ), tôi nên cung cấp cho ít nhất 2-3GB cho hệ điều hành? Tôi có thể ước tính không gian bộ nhớ cache đĩa cần thiết bởi hệ điều hành bằng cách nhìn vào kích thước chỉ mục trên đĩa?
Tại sao phiếu bầu đóng? – Kevin
Cả hai câu trả lời đều tốt nên tôi đã chọn câu trả lời đúng. Cảm ơn bạn đã trả lời. – Kevin