我正在使用 OrientDB 2.1.11 和 rexster 2.6,而 gremlin 是主要的查询语言。我通过 rexpro(和 rexster REST)使用。我的问题是:如何从 gremlin 中获取索引(我必须使用 gremlin 而不是 orient sql)。
我有一个顶点类邮政编码,它在模式中定义了 1 个属性 zip_code 并索引为字典:
zipcode.zip_code DICTIONARY ["zip_code"] SBTREE
但是当我使用 gremlin 查询它时,当记录大约 > 25k 时它很慢(没有用较低的数字进行测试)。为了给出正确的上下文,我首先尝试找到邮政编码,如果它不存在,那么我创建顶点以供以后使用。查找查询是这样的:
g.V('@class', 'zipcode').has('zip_code','10018')
问题:gV('@class'... 是否命中索引?它不会超过 1000000 个 V 对象吗?有没有办法更好地编写它以提高我的顶点类的效率,即邮政编码?我只需要匹配一个我的类中顶点的属性(邮政编码)。
是使用has('zip_code', '12345')
还是更好filter {it.zip_code == '12345'}
?哪个会命中创建的索引?
如果我必须匹配超过 1 个属性以匹配:
.has('zip_code', '12345').has('state','NY').has('city','NEW YORK')
会有'命中索引或'filter{}'?请指教。