Khi sử dụng Lucene.Net với ASP.NET, tôi có thể tưởng tượng rằng một yêu cầu web có thể kích hoạt cập nhật cho chỉ mục trong khi một yêu cầu web khác đang thực hiện tìm kiếm. Lucene.Net có xây dựng trong nó khả năng quản lý truy cập đồng thời hay tôi phải quản lý nó, để tránh các lỗi "đang được xử lý bởi một tiến trình khác"?Lucene.Net có quản lý nhiều luồng truy cập cùng một chỉ mục, một chỉ mục trong khi chỉ mục khác đang tìm kiếm không?
EDIT: Sau khi đọc tài liệu và thử nghiệm, đây là những gì tôi nghĩ rằng tôi đã học được: Có hai vấn đề, an toàn luồng và đồng thời. Đa luồng là "an toàn" trong đó bạn không thể làm bất cứ điều gì xấu cho chỉ mục. Nhưng, nó an toàn với chi phí chỉ là một đối tượng có khóa trên chỉ mục cùng một lúc. Đối tượng thứ hai sẽ đến và ném một ngoại lệ. Vì vậy, bạn không thể để mở một tìm kiếm và mong đợi một người viết trong một chuỗi khác có thể cập nhật chỉ mục. Và nếu một luồng đang bận cập nhật chỉ mục, thì cố gắng tạo một người tìm kiếm sẽ thất bại.
Ngoài ra, người tìm kiếm sẽ thấy chỉ mục khi họ mở nó, vì vậy nếu bạn giữ chúng xung quanh và cập nhật chỉ mục, người dùng sẽ không thấy các bản cập nhật.
Tôi muốn người tìm kiếm của tôi xem các cập nhật mới nhất. Thiết kế của tôi, và nó dường như đang làm việc cho đến nay, là các nhà văn và người tìm kiếm của tôi chia sẻ một khóa, để họ không thất bại - họ chỉ cần chờ đợi - cho đến khi viết hiện tại hoặc tìm kiếm được thực hiện. Các tính năng chính của chúng tôi được hiển thị trên trang web của chúng tôi.
Bạn có thể giải thích cách bạn đã triển khai khóa không? Bạn có sử dụng khóa đọc và ghi hoặc chỉ một khóa được chia sẻ không? –
Một khóa chung. Tôi đã viết những gì tôi đã làm: http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx –
Những gì bạn nói trong câu hỏi của bạn là sai: "Vì vậy, bạn có thể không để một tìm kiếm mở và mong đợi một người viết trong một luồng khác có thể cập nhật chỉ mục. Và nếu một luồng đang bận cập nhật chỉ mục, thì việc cố gắng tạo một người tìm kiếm sẽ thất bại. " Như đã đề cập trong các câu trả lời khác: "Một người viết chỉ mục hoặc người đọc có thể chỉnh sửa các tệp chỉ mục lucene trong khi tìm kiếm đang diễn ra" và ngược lại. –