2017-08-09 13 views
2

私はエンタープライズ3.2を使用しており、正規表現マッチング演算子=〜に問題があると、ArangoDBは大文字と小文字を区別しないドキュメントと一致しません。ドキュメントから、私は文字列正規表現を使用することができ、それは大文字と小文字を区別しないはずです。しかし、試行されたときに、右手オペランドがすべて小文字である場合には、文字と一致しません。問題を参照するスクリーンショットを添付してください。この最初のスクリーンショットは、コレクションと同じケースを使用するときに、クエリによってドキュメントがレトライされることを示しています。 enter image description hereregex operator =〜

大文字と小文字を区別しない正規表現がレコードを取得できないことを示す2番目のスクリーンショットです。 enter image description here

+0

私は=〜CASEINSENSITIVEあるべき状態へとドキュメントを読んでいない - 私にはそれが示唆します大文字と小文字を区別しないようにするには、 'REGEX_TEST(text、regexp、true);'を使う必要があります。 –

答えて

1

トムのように既に言われました。 caseInsensitivetruedocs参照)に設定して、REGEX_TEST(text, search, caseInsensitive)を使用する必要があります。

オペレータ=~REGEX_TEST(text, search, false)のほんの短い手です。

0

実際には、REGEX_TESTを使用する必要があります。そして、これはあなたがそれを行う方法です。

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

この問題が発生したときに私はこのスレッドに遭遇しましたが、これには別の解決策もあります。 REGEX_TEST()関数の代わりに=〜演算子を使いたい人に与えたいだけです。

例:

FOR doc in contacts 
FILTER doc.name =~ '(?i)raM' 
RETURN doc 

別の解決策は、(テストしていない)可能性があり:

FOR doc in contacts 
FILTER LOWER(doc.name) == LOWER('raM')