Define a coherent query language.
When searching for a symbol, group together its definition and references. Keep apart separate symbols with the same name.
Filter symbol by namespace / translation unit path / header path.
Serialization for translation units.
Serialization for project databases units.
Multi-process parsing.