2012-05-10 35 views
5

Tôi đang xem xét sử dụng CouchBase cho một ứng dụng nặng và đọc rất nặng. Tôi cũng sẽ cần hỗ trợ tìm kiếm dựa trên các thuộc tính khác nhau của tài liệu cũng như các truy vấn phạm vi.Tìm kiếm phạm vi CouchBase

CouchBase có chế độ xem để cho phép tìm kiếm ngoài tìm kiếm giá trị khóa nhưng có vẻ như đây là chủ yếu để nhận tài liệu trong một phạm vi nhất định, ví dụ: nhận tất cả các tài liệu được lập chỉ mục giữa hai khóa được chỉ định, thay vì "cung cấp cho tôi tất cả tài liệu có thuộc tính thể loại" phiêu lưu "hoặc" cung cấp cho tôi tất cả tài liệu có ngày tạo từ 1/1/1 đến 2/1/1 "

Có cách nào để đạt được những gì tôi muốn mà không có chỉ mục bên ngoài không?

Trả lời

3

Bạn chắc chắn có thể làm cả hai điều bạn mô tả ở đó. Bạn sẽ làm cả hai với quan điểm trong Couchbase Server 2.0.

Ví dụ: một kỹ thuật phổ biến khi cần tìm kiếm phạm vi ngày là phát ra mảng JSON từ hàm bản đồ của bạn trong chế độ xem. Điều này sẽ cung cấp cho bạn một cái gì đó như: [2012, 5, 11, 16, 27, 41]

Vì khi bạn truy vấn chế độ xem, mảng JSON là địa điểm hợp lệ cho khóa bắt đầu và kết thúc, bạn có thể chỉ định phạm vi.

Tương tự, trích xuất tất cả các thuộc tính bạn muốn phát ra từng thuộc tính từ hàm bản đồ của bạn với doc _id. Sau đó, sử dụng một trong số Couchbase SDKs, bạn có thể đặt tùy chọn bao gồm tài liệu khi truy vấn và tài liệu sẽ tự động được tìm nạp.

+0

Cảm ơn câu trả lời của bạn, một vài câu hỏi, có lẽ là câu hỏi ngớ ngẩn. Tại sao mảng mẫu của bạn có quá nhiều phần tử, không phải là [yyyy, mm, dd]? Ngoài ra, tôi không rõ về phần thứ hai. Có một ví dụ [ở đây] (http://www.couchbase.com/develop/java/next) nhưng làm thế nào tôi sẽ chỉ định một thuộc tính tài liệu cụ thể để lọc theo? – Kailash

+0

Tôi đã thêm các phần tử cho giờ, phút, giây, đó là tất cả. Tôi không chắc chắn câu hỏi thứ hai của bạn là gì. –

+0

Tôi nghĩ rằng tôi đã nhận nó ngay bây giờ, cảm ơn bạn rất nhiều! – Kailash

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