Se você tentar pensar muito em como estruturar seus dados para pesquisa, há uma boa chance de perder uma pesquisa importante que você realmente poderia ter usado em seu aplicativo.
Alternativamente (e isso é por experiência), você acaba reinventando todos os tipos de técnicas de indexação.
Eu tenho alguma experiência com lucene (existe a versão java e .net, havia uma porta C, mas não tenho certeza de quão viva ela está hoje em dia) - e ela pode fazer coisas incríveis com dados armazenados em qualquer estrutura.
Eu gosto da aparência do db do sofá, só depende do quanto você quer experimentar algo novo e poderoso, ou ir para algo que é (atualmente) bastante endurecido pela batalha:lucene.