如何使用';匹配';在不区分大小写的OrientDB上?

如何使用';匹配';在不区分大小写的OrientDB上?,orientdb,orientdb2.2,Orientdb,Orientdb2.2,我正在使用OrientDB 2.2.30版,我想搜索所有与白色汽车相关的人员 在所有字符串属性上,顶点(人物和实体)都设置为不区分大小写 问题是单词“white”是用大写和小写写的,匹配只返回那些与我在查询中所写的形式完全匹配的 MATCH {class:Person, as:E0}.outE(){class:Drive, as:R0}.inV(){class:Car, as:E1 , where:( ( CarColor IN ['white'] ) ) } RETURN $paths

我正在使用OrientDB 2.2.30版,我想搜索所有与白色汽车相关的人员

在所有字符串属性上,顶点(人物和实体)都设置为不区分大小写

问题是单词“white”是用大写和小写写的,匹配只返回那些与我在查询中所写的形式完全匹配的

MATCH {class:Person, as:E0}.outE(){class:Drive, as:R0}.inV(){class:Car, as:E1 , where:( (   CarColor IN ['white']   ) ) } RETURN $paths
这将返回所有匹配路径,但仅当单词“white”作为查询写入时才会返回:“white”(即使此字段设置为不区分大小写,结果也不会检索white或white)

有趣的是,如果我从'match'查询中取出颜色的条件并将其放在'regular'where子句中,它就可以正常工作并检索所有大小写

SELECT  *
 FROM 
 ( MATCH {class:Person, as:E0}.outE(){class:Drive, as:R0}.inV(){class:Car, as:E1 } RETURN $paths )
WHERE ( (   E1.CarColor IN ['white']   ) )
但此解决方案会导致匹配查询运行更长时间。。。 所以我需要另一个解决方案来使用“匹配”,条件将应用为不区分大小写


谢谢。

最简单的方法是使用
.toLowerCase()
例如['white']中的
CarColor.toLowerCase()
我考虑过了,但是如果属性“CarColor”是emmbed list,我怎么做toLower()?(此外,如果属性设置为不区分大小写,为什么我需要toLower???)请参考我上面的评论。我在一个带有Emmbed列表(字符串)的属性上也有同样的问题,我认为我不能在多值属性上执行toLowerCase。。。