索引、缓存、搜索引擎相关

这个存储的时候索引是如何创建的?针对查询效率,有必要在查询接口层上层做一层redis缓存吗?以及有必要引入搜索引擎:solr、es这些吗?

index 的介绍,可以看下 https://nebula-graph.com.cn/posts/how-indexing-works-in-nebula-graph/

您好,很好的问题,逐个回答:
这个存储的时候索引是如何创建的?
关于索引的存储,可以参考一下楼上同学发出来的说明。另外我有一点补充的是,索引和数据都被存在了同一个part上,这样有利于通过index直接在本part中获取data,避免了跨part的网络传输。

针对查询效率,有必要在查询接口层上层做一层redis缓存吗?
针对这个上层的缓存问题,我个人认为如果是AP的话,有必要缓存;如果是TP的话,因为数据量变动较大,上层缓存的话无形中也增加了上层的负载,目前nebula存储层有相关的LRU缓存机制,我感觉在存储层缓存更有利一些。当然如果对数据准确性要求不高,允许数据时延的话,上层的缓存还是有必要的。另一个,在上层做缓存的话,是否直接缓存在第三方系统(例如redis)这个问题还有待考虑。
以及有必要引入搜索引擎:solr、es这些吗?
很好的需求,目前已经有计划支持第三方全文搜索引擎了,主要应用场景有模糊匹配、通配符匹配、正则表达式匹配、前缀匹配、后缀匹配等等。

2 个赞