Ако се опитате да мислите твърде много как да структурирате данните си за търсене, има голям шанс да пропуснете важно търсене, което наистина бихте могли да използвате в приложението си.
Като алтернатива (и това е от опит) в крайна сметка преоткривате всички видове техники за индексиране.
Имам известен опит с lucene (има java и .net версия, имаше C порт, но не съм сигурен колко е жив в наши дни) - и може да прави невероятни неща с данни, които се съхраняват във всяка структура.
Харесва ми външния вид на couch db, просто зависи колко искате да експериментирате с нещо ново и мощно или да изберете нещо, което (в момента) е доста закалено в битки:lucene.