1
我在我的iOS应用程序中使用Yapdatabase作为存储引擎,并且我需要一个表示对象的同一属性的多个值的索引。单个Yapdatabase行的多个索引条目
示例:我在我的Yapdatabase中存储汽车对象。我的大多数汽车物品都有多种颜色,但我想要高效地检索所有黄色汽车。
我对YapDatabaseSecondaryIndexes有点熟悉,但我无法将其应用到我的场景中。
我该如何有效检索黄色汽车?
我在我的iOS应用程序中使用Yapdatabase作为存储引擎,并且我需要一个表示对象的同一属性的多个值的索引。单个Yapdatabase行的多个索引条目
示例:我在我的Yapdatabase中存储汽车对象。我的大多数汽车物品都有多种颜色,但我想要高效地检索所有黄色汽车。
我对YapDatabaseSecondaryIndexes有点熟悉,但我无法将其应用到我的场景中。
我该如何有效检索黄色汽车?
有几个选项。如果你只处理少量的颜色,那么你仍然可以使用YapDatabaseSecondaryIndex。您可以配置您的索引以包含每种颜色的字段。
YapDatabaseSecondaryIndexSetup *setup = [[YapDatabaseSecondaryIndexSetup alloc] init];
[setup addColumn:@"red" withType:YapDatabaseSecondaryIndexTypeInteger];
[setup addColumn:@"blue" withType:YapDatabaseSecondaryIndexTypeInteger];
...
然后,每辆车只需设置每个颜色的“标志”。
如果您正在处理很多不同的颜色,那么改为使用FullTextSearch扩展可能更有效。基本上,您将为包含所有颜色的每辆车创建一个字符串,并将该字符串交给FullTextSearch扩展。然后,您可以简单地为包含“黄色”的汽车发出查询。
我的“色彩池大小”在index-setup-time时是未知的,但全文搜索表现出色。谢谢! – stoffen