提升多列索引的多指标复合密钥

时间:2016-03-03 16:48:36

标签: c++ search boost boost-multi-index

我有一些记录,模式是(id,length,width);

我想搜索"长度为[10,20],宽度为(20,30)&#34 ;;

如果我使用关系数据库,我可以在长度和宽度上创建多列索引。

我需要在记忆中完成这项工作。我看到Boost Multi-Index支持Composite Key;但我发现它似乎只支持equal_range搜索,例如" length == 20和width == 20"。

增加多指数支持查询,如[10,20]和宽度在(20,30)?

似乎是multimap<长度,多图< width,id> >可以支持我的要求,但编码有点复杂。

1 个答案:

答案 0 :(得分:1)

我害怕Boost.MultiIndex对此并不好;考虑到每个索引(使用或不使用复合键)会在元素上引入线性顺序,而您需要在此处进行2D排列。我建议你看看Boost.Geometry R-trees