作为客户新项目的一部分,我需要创建一个搜索工具。记录将是在一个或多个特定日期发生的事情。很高兴获得 SO 关于哪些工具最适合以下要求的建议:
- 需要(多方面)搜索数万条记录(基于类别、日期、价格等字段)
- 需要搜索多值字段(即标签)
- 需要能够通过静态因素(如价格、距离等)订购
- 需要能够通过动态/频繁变化的因素(例如用户参与度/流量等)进行排序
- 需要能够只返回在用户自己的社交网络中有活动的记录(即“只显示我的朋友参与的结果”)。
- 将部署在 EC2 中
我目前的想法是:
- 混合使用 Amazon CloudSearch 和 Redis
- 成千上万的记录实际上并没有那么多。也许在 RDBMS 中完成大部分工作,使用 CloudSearch 进行全文搜索?
- 使用 Redis 为每个用户维护一组最近交互的记录,然后将它们合并以获取用户网络中的记录。
我主要担心的是从各种服务(Redis/CloudSearch)中提取可能数千个 ID,然后必须将它们合并到客户端代码中的延迟。然而,这或许是没有根据的。
我希望可能有一个我错过的技术堆栈可以为我解决很多问题。我不想去重新发明轮子。
欢迎任何建议!