Ultipa 索引(属性索引)在磁盘中为点、边属性创建索引树,既能大大提高针对点、边的检索速度(类似于传统数据库的索引),又为各种路径、邻域查询中的点、边过滤进行提速。
Ultipa 原生开发的 Full-text 全文 搜索引擎为文本类型的点、边属性进行分词,并在磁盘中基于分词结果创建反向索引,从而进行高效快速地关键词搜索,适用于从元数据查询到路径、邻域等各类图上的查询。
Ultipa LTE(引擎索引)将磁盘上的点、边属性或其索引加载到 Ultipa 高性能图计算引擎当中,通过减少磁盘 I/O 操作来提高路径、邻域等基于路径多步检索的过滤速度。
属性索引(Index) v.s. 引擎索引(LTE)
属性索引和引擎索引一样,都是通过耗费磁盘空间、保证创建的内容可以被持久化来实现检索性能的提升,但二者仍然存在一些区别。
-
区别 1:加速对象
- LTE:主要加速对象是图的基于路径的查询,如 AB 路径查询、K 邻查询,凡是涉及到路径(深度 >= 1)的搜索,都适合使用 LTE 加速。
- 属性索引:主要加速对象是元数据搜索,无论是使用
find()
命令查找点、边,还是在路径查询中对点、边进行过滤,属性索引都能发挥加速作用。
-
区别 2:实现原理
- LTE:将属性加载到 Ultipa 图计算引擎,让引擎在搜索时可以直接使用属性或其索引,从而减少因磁盘 I/O 而产生的耗时。
- 属性索引:创建各类索引树,直接使用持久化存储中的数据结构进行检索加速。
-
区别 3:内存与磁盘使用
- LTE 的属性:占用内存空间,所占空间取决于属性类型及数量;同时属性值本身会持久化存储于磁盘当中,以便在实例重启后自动重新加载。
- 属性索引的索引树:占用磁盘空间。
对于同时进行了 LTE 并创建了属性索引的属性:
- 在路径类查询中,优先使用 LTE
- 在元数据查询中,优先使用属性索引