Hvis du prøver at tænke for meget over, hvordan du strukturerer dine data til søgning, er der en god chance for, at du går glip af en vigtig søgning, som du virkelig kunne have brugt i din app.
Alternativt (og det er af erfaring) ender du med at genopfinde alle mulige indekseringsteknikker.
Jeg har en del erfaring med lucene (der er java- og .net-version, der var en C-port, men jeg er ikke sikker på, hvor levende den er i disse dage) - og den kan gøre fantastiske ting med data, der er gemt i enhver struktur.
Jeg kan godt lide udseendet af sofa db, det afhænger bare af, hvor meget du vil eksperimentere med noget nyt og kraftfuldt, eller gå efter noget, der (i øjeblikket) er ret kamphærdet:lucene.