Pokud se budete snažit příliš přemýšlet o tom, jak strukturovat data pro vyhledávání, je velká šance, že zmeškáte důležité vyhledávání, které jste mohli ve své aplikaci skutečně použít.
Alternativně (a to je ze zkušenosti) skončíte znovu vynalézáním nejrůznějších technik indexování.
Mám nějaké zkušenosti s lucene (existuje java a .net verze, byl tam port C, ale nejsem si jistý, jak moc je v dnešní době živý) - a dokáže úžasné věci s daty, která jsou uložena v jakékoli struktuře.
Líbí se mi vzhled couch db, záleží jen na tom, jak moc chcete experimentovat s něčím novým a výkonným, nebo sáhnout po něčem, co je (momentálně) poměrně bojovně zoceleno:lucene.