C’est une réponse peut être hors sujet, mais si ton seul soucis est de chercher, tu peux garder ton système de stockage actuel et indexer tes données en temps réel avec ElasticSearch.
Ça supporte pratiquement tous les points requis, même si pour des questions de performance il vaut mieux lui fournir un schéma le plus complet possible avant d’indexer (quitte à lui filer des données incomplètes). Tu peux aussi faire des queries très complexes en javascript, si les possibilités de recherche de base (assez étendues) ne te suffisent pas.