是否可以在 Ignite 中的多值字段上创建索引?

Is it possible to create an index on a multi-value field in Ignite?

在某些数据库系统中,您可以在多值字段上创建索引。例如,在 MongoDB 中,如果您的文档具有这样的数组字段

{
    "authors": ["John", "Mary"],
    ....
}

然后您可以在 authors 字段上创建一个索引,该索引将加快对该 authors 字段的查询。

在 Ignite 中,使用键值 API,您可以将任何内容放入缓存中。值的字段可以包含标量值、集合、对象。您可以创建索引,但我在文档中找到的所有示例始终处理标量字段。

假设我在 Ignite 中存储的值有一个 List<String> 类型的字段,我想通过列表的任何元素找到这样的值。是否可以在其上建立索引以加快搜索速度? (老实说,我对此表示怀疑,因为似乎不存在使用 SQL 编写此类查询的方法,但谁知道呢...)

您在 Ignite 中执行此操作的方式是规范化数据,也就是说,您将拥有两个具有一对多关系的缓存。然后您将使用 SQL 查询列表中的值。

为了提高效率,您需要使用关联键来确保“多”方与“一”方在同一台机器上。