Nếu bạn cố gắng suy nghĩ quá nhiều về cách cấu trúc dữ liệu của mình để tìm kiếm, rất có thể bạn sẽ bỏ lỡ một tìm kiếm quan trọng mà bạn có thể đã thực sự sử dụng trong ứng dụng của mình.
Ngoài ra (và điều này là từ kinh nghiệm) bạn sẽ phát minh lại tất cả các loại kỹ thuật lập chỉ mục.
Tôi có một số kinh nghiệm với lucene (có phiên bản java và .net, có cổng C nhưng tôi không chắc nó còn sống như thế nào trong những ngày này) - và nó có thể làm những điều đáng kinh ngạc với dữ liệu được lưu trữ trong bất kỳ cấu trúc nào.
Tôi thích giao diện của couch db, chỉ phụ thuộc vào mức độ bạn muốn thử nghiệm với một cái gì đó mới và mạnh mẽ, hoặc đi cho một cái gì đó (hiện tại) khá khó khăn:lucene.