Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql OrientDB:使用gremlin进行文本搜索_Sql_Orientdb_Graph Databases_Gremlin_Pyorient - Fatal编程技术网

Sql OrientDB:使用gremlin进行文本搜索

Sql OrientDB:使用gremlin进行文本搜索,sql,orientdb,graph-databases,gremlin,pyorient,Sql,Orientdb,Graph Databases,Gremlin,Pyorient,我正在使用OrientDB和随附的gremlin控制台 我正在尝试在文本属性中搜索模式。我有具有ebodyText属性的电子邮件顶点。问题是,使用类似SQL的命令和Gremlin语言进行查询的结果大不相同 如果我使用类似SQL的查询,例如: 从电子邮件中选择count(*),其中包含“%Syria%”等文本。 它返回24 但如果我在gremlin控制台中查询,例如: g.V.has('eBodyText').filter{it.eBodyText.matches('.*Syria.*')}.co

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

我正在尝试在文本属性中搜索模式。我有具有ebodyText属性的电子邮件顶点。问题是,使用类似SQL的命令和Gremlin语言进行查询的结果大不相同

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

从电子邮件中选择count(*),其中包含“%Syria%”等文本。

它返回24

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

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

它不返回任何值

使用不同关键字“memo”的相同查询通过SQL返回161,但通过gremlin返回20

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

我猜在使用python驱动程序“pyorient”的上传脚本中可能存在设置属性的问题。

谢谢你的帮助


我尝试了2.1.15,没有问题

这些是记录

已编辑

我在数据库中添加了一些顶点,现在
count()
是11

查询:

g.V.has('eBodyText').filter{it.eBodyText.contains('Syria')}.count()
==>11
输出:

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

希望有帮助。

这很有趣。我的版本是2.1.13,但我认为这不是问题所在。这应该是一个文本编码问题吗?或者可能是长度?我刚刚重新安装了它,2.1.15也有同样的问题。如果您需要更多信息,请告诉我,谢谢~@NeoJi您可以共享以下查询的所有结果吗?从电子邮件中选择像“%Syria%”和g.V.has('eBodyText')这样的eBodyText。过滤器{it.eBodyText.matches('.*Syria.*')}?这将是一个很长的电子邮件正文列表。我用eBodyText limit 3更新了屏幕截图。我担心可能有一个空对象,过滤器停止迭代。我在studio中手动添加了一条新记录,并且找到了一条。我想我上传数据集的脚本有一些问题。我将添加一个链接到脚本也。