Jeśli spróbujesz zastanowić się nad strukturą danych do wyszukiwania, istnieje duża szansa, że przegapisz ważne wyszukiwanie, które naprawdę możesz wykorzystać w swojej aplikacji.
Alternatywnie (i wynika to z doświadczenia) w końcu wymyślasz na nowo wszelkiego rodzaju techniki indeksowania.
Mam pewne doświadczenie z lucene (jest wersja java i .net, był port C, ale nie jestem pewien, jak bardzo jest w dzisiejszych czasach) - i potrafi robić niesamowite rzeczy z danymi przechowywanymi w dowolnej strukturze.
Podoba mi się wygląd couch db, zależy tylko od tego, jak bardzo chcesz poeksperymentować z czymś nowym i potężnym, lub wybrać coś, co jest (obecnie) dość zahartowane w boju:lucene.