使用正则表达式运算符时,ArangoDB不匹配不区分大小写的文档=~

使用正则表达式运算符时,ArangoDB不匹配不区分大小写的文档=~,arangodb,case-insensitive,aql,Arangodb,Case Insensitive,Aql,我正在使用enterprise 3.2,并且正则表达式匹配运算符存在问题。从文档中可以看出,我可以使用字符串regex,并且应该不区分大小写。但是,尝试时,当右操作数全部为小写时,它无法匹配字符。附加屏幕截图以参考问题。第一个屏幕截图显示,当我们使用与集合中相同的案例时,查询将检索文档。 下面是第二个屏幕截图,显示不区分大小写的regex无法提取记录。 就像汤姆已经说过的那样。您必须使用REGEX\u测试(文本,搜索,不区分大小写),将不区分大小写设置为true(请参阅) 操作符=~只是REG

我正在使用enterprise 3.2,并且正则表达式匹配运算符存在问题。从文档中可以看出,我可以使用字符串regex,并且应该不区分大小写。但是,尝试时,当右操作数全部为小写时,它无法匹配字符。附加屏幕截图以参考问题。第一个屏幕截图显示,当我们使用与集合中相同的案例时,查询将检索文档。

下面是第二个屏幕截图,显示不区分大小写的regex无法提取记录。
就像汤姆已经说过的那样。您必须使用
REGEX\u测试(文本,搜索,不区分大小写)
,将
不区分大小写
设置为
true
(请参阅)


操作符
=~
只是
REGEX\u测试(文本、搜索、假)的简写。

确实,您必须使用REGEX\u测试。这就是你如何做到的,举个例子

FOR doc IN contacts 
    FILTER REGEX_TEST(doc.name, 'anystring_representing_regex', true)
RETURN doc

当我遇到这个问题时,我偶然发现了这条线索,但还有另一种解决方法。只想把它给那些想使用=~操作符而不是REGEX_TEST()函数的人

例如:

FOR doc in contacts
FILTER doc.name =~ '(?i)raM'
RETURN doc
还可以使用另一种解决方案(未测试):


我没有阅读文档,因为state=~应该不区分大小写——对我来说,它建议您必须使用
REGEX\u测试(text,regexp,true)如果要进行不区分大小写的匹配。
FOR doc in contacts
FILTER LOWER(doc.name) == LOWER('raM')