我有一个大的非循环有向图。
每个节点都有一些键/值对。一些键可以按范围搜索。
假设所有节点都有这些键:
- 颜色 - 红色、蓝色、绿色等。
- 价格 - 一个整数
- 大小 - 一个整数
我想从我的图表中选择一个节点列表,以便:
- 所有节点都有颜色=红色
- 所有节点的价格 >= 10 和 <= 20
- 列表按增加大小排序
- 任何满足颜色和价格标准并且没有外链(没有边缘来自该节点)的节点都在列表中
- 列表中没有两个节点共享一条边
理想情况下,该列表将具有可能满足所有这些约束的最大节点数。
我需要能够非常快速地搜索这个图表。
哪种数据存储(图形或其他)最适合这个问题?关于如何实现模式和查询以获得最佳性能的任何提示?