大神能不能提点一下这样的项目应该是什么样的思路

题目
// 有一个文件有千万条数据。数据内容如下:
// ID | 姓名 | 性别 | 学号 | 籍贯 | 爱好 | 心情短语
// 100 张三 男 1001 山东 篮球 一起皆有可能
// 101 李四 男 1002 广东 象棋 爱拼才会赢
// 102 王五 女 1010 香港 跳舞 么么达
// ...

要求
请设计一个查询系统,需要对以上内容进行非常频繁的查询,查询条件可能是模糊匹配姓名,也能是性别,籍贯,爱好,心情短语等
关键点:可以满足非常频繁的查询请求;查询速度快;内存占用尽量低
1,说明详细的设计思路
2,实现关键的数据结构
3,实现关键的查询函数

简单的关系数据库原理
姓名,籍贯等建立索引(这里可以采用hash)
根据索引创建平衡二叉树

先做个人的类/结构体对象
属性(变量):ID name sex 学号 地址 爱好
然后可以一个一个类对象/结构体的读取,同时比较

avl数算是比较快的了啊,还是用avl树把