Я использую OrientDB версии 2.2.30 и хочу найти всех, кто связан с БЕЛОЙ машиной.
Обе вершины (человек и объект) настроены на нечувствительность к регистру во всех строковых свойствах.
Проблема в том, что слово «белый» пишется в верхнем и нижнем регистре, и ПОИСКПОЗ возвращает только те, которые соответствуют точной форме, которую я пишу в запросе.
MATCH {class:Person, as:E0}.outE(){class:Drive, as:R0}.inV(){class:Car, as:E1 , where:( ( CarColor IN ['white'] ) ) } RETURN $paths
Это вернет все пути совпадения, но только если слово «белый» написано как запрос: «белый» (БЕЛЫЙ или БЕЛЫЙ не будут получены в результате, даже если это поле настроено как НЕчувствительный к регистру)
Забавно то, что если я возьму условие цвета OUT из запроса «match» и помещу его в «обычное» предложение 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'] ) )
Но это решение приводит к тому, что запрос на совпадение выполняется намного дольше... Поэтому мне нужно другое решение для использования "сопоставления" с условиями, которые будут применяться как НЕчувствительные к регистру...
Спасибо.