OrientDB:使用gremlin进行文本搜索

时间:2016-04-13 14:01:55

标签: sql orientdb graph-databases gremlin pyorient

我正在使用OrientDB和随附的gremlin控制台。

我正在尝试在text属性中搜索模式。我有电子邮件顶点与ebodyText属性。问题是使用SQL查询命令和Gremlin语言的结果是完全不同的。

如果我使用SQL之类的查询,例如:

select count(*) from Email where eBodyText like '%Syria%'

它返回24。

但是如果我在gremlin控制台中查询,例如:

g.V.has('eBodyText').filter{it.eBodyText.matches('.*Syria.*')}.count()

它没有返回。

使用不同关键字'memo'的相同查询由SQL返回161,但由gremlin返回20。

为什么这样做? gremlin命令的语法有问题吗?有没有更好的方法来搜索gremlin中的文本?

我想在使用python驱动程序'pyorient'的上传脚本中设置属性可能存在问题。 Python script used to upload the dataset

感谢您的帮助。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:3)

我尝试了2.1.15,我没有问题。

这些是记录。

enter image description here

enter image description here

enter image description here

enter image description here

<强> EDITED

我在数据库中添加了一些顶点,现在SELECT DAY(time), COUNT(DAY(time)) FROM users_has_activities WHERE usersID = 47 GROUP BY DAY(time); 为11

<强> QUERY:

count()

<强>输出:

g.V.has('eBodyText').filter{it.eBodyText.contains('Syria')}.count()

希望它有所帮助。