有多个关键字的值,相仿SELECT语句的底层算法实现

有多个关键字的值,类似SELECT语句的底层算法实现?
有一个数据结构A,包含多个数据成员,这些成员基本上可以看作都是int类型,每一个成员都视为一个关键字类型,把所有的关键字类型加入一个集合KEY_SET,现在希望能通过提供KEY_SET的一个子集,由此查找出匹配该关键字子集的所有A的实例(很像SQL中的SELECT语句)
假如作为值的数据结构是这样的

struct A
{
int a;
int b;
int c;
...
int z;
}

用这样的方式进行查找:

search(a,d,f),这样子就返回一个A结构的实例的列表,其中每一个实例的a,d,f成员与传递给search的参数匹配,search的参数数目不定,可以是search(a),search(a,b,c),search(...)等
简单的来说就是,一个值有多个关键字,可以通过部分关键字的匹配来获取这个值的引用。
我初步的想法是为每一个关键字配一个哈希表,所有哈希表的值类型都是A,路过的高手有谁知道这样的问题在经典算法问题中是否有对应?

------解决方案--------------------
不明觉厉。。。。
------解决方案--------------------
数据库为了提高查找速度, 都会建立多个索引, 将常用的查询条件都建立索引. 索引可以是B树, 红黑树, Hash表等等.
对于非索引的条件, 通常是先找到一个最接近的索引, 先按所以查找出结果集, 再遍历结果集匹配其他条件.
------解决方案--------------------
既然你为每一个值都配一个hash,那么先hash 表处理,再结合一些合适的树形结构了