这是一个关于是否支持或拥有 Elastic Search 索引的可能性的一般性问题 在使用 schema Cardinality.LIST 声明的顶点属性上 并将这些值放在列表中,并通过其相应的元数据进行索引。
这可能吗?我们可以使用任何钩子来进行这种安排吗?近期有计划这样做吗?
对于JanusGraph 1.0,ES接缝的选项不可用,并且索引返回列表上具有任何匹配值的所有顶点,而不对元值进行任何额外的过滤。 举个例子:
g.V(1234).properties('name').valueMap()
==>[date:2014,creator:stephen]
==>[date:2015,creator:oleksandr]
我们只需要搜索过去创建的具有“名称”的顶点,Gremlin 示例如下:
g.V().hasLabel("My_VERTEX").has("name","abcabc").where(__.properties("name").has("date",P.gte, 2015).has("creator", P.eq, "oleksandr" ))
并有一些方法来为这些属性及其元属性定义 ElasticSearch 索引。
我们尝试利用以顶点为中心的索引,它有帮助,...但我们仍然面临着通过其相应的元属性从超级节点中过滤掉数千个顶点的情况,其中每个顶点都需要从超级节点中获取元数据数据库进行比较,这一切都太慢了,只需几分钟。