使用元属性对基数列表值进行弹性搜索

问题描述 投票:0回答:1

这是一个关于是否支持或拥有 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 索引。

我们尝试利用以顶点为中心的索引,它有帮助,...但我们仍然面临着通过其相应的元属性从超级节点中过滤掉数千个顶点的情况,其中每个顶点都需要从超级节点中获取元数据数据库进行比较,这一切都太慢了,只需几分钟。

elasticsearch properties metadata vertices cardinality
1个回答
0
投票

你提出了一个很好的问题。不幸的是,混合索引不具有索引元属性的功能。但是,我看不出有什么理由不能实施。

我不知道现在有谁在朝这个方向努力,但您应该随时在 GitHub 中打开功能请求并在那里链接此 StackOverflow 线程。

我认为这可能还需要在开发邮件列表中进行讨论,以就如何在混合索引后端将元属性与普通属性一起编入索引达成一致。

© www.soinside.com 2019 - 2024. All rights reserved.