单个 Yap 数据库行的多个索引条目

Multiple index-entries for a single Yapdatabase-row

我在我的 iOS 应用程序中使用 Yapdatabase 作为存储引擎,我需要一个索引来表示一个对象的相同 属性 的多个值。

示例:我将汽车对象存储在我的 Yap 数据库中。我的大部分汽车对象都有多种颜色,但我想高效地检索所有黄色汽车。

我对 YapDatabaseSecondaryIndexes 有点熟悉,但我无法将其融入我的场景。

我怎样才能高效地取回黄色汽车?

有几个选项。如果您只处理少数几种颜色,那么您仍然可以使用 YapDatabaseSecondaryIndex。您可以将索引配置为包含每种颜色的字段。

YapDatabaseSecondaryIndexSetup *setup = [[YapDatabaseSecondaryIndexSetup alloc] init];
[setup addColumn:@"red" withType:YapDatabaseSecondaryIndexTypeInteger];
[setup addColumn:@"blue" withType:YapDatabaseSecondaryIndexTypeInteger];
...

然后每辆车只需为每种颜色设置 "flags"。

如果您要处理很多不同的颜色,那么改用 FullTextSearch 扩展程序可能更有效。基本上,您将为每辆包含所有颜色的汽车创建一个字符串,并将该字符串传递给 FullTextSearch 扩展。然后您可以简单地查询包含 "yellow".

的汽车