OrientDB: поиск текста с использованием gremlin
Я использую OrientDB и консоль gremlin, которая входит в комплект.
Я пытаюсь найти шаблон в текстовом свойстве. У меня есть адреса электронной почты со свойством ebodyText. Проблема в том, что результат запроса с помощью SQL-подобной команды и языка Gremlin отличается.
Если я использую SQL как запрос, такой как:
select count(*) from Email where eBodyText like '%Syria%'
возвращается 24.
Но если я сделаю запрос в консоли gremlin, например:
g.V.has('eBodyText').filter{it.eBodyText.matches('.*Syria.*')}.count()
это не возвращает ни одного.
Те же запросы с другим ключевым словом "memo" возвращают 161 по SQL, но 20 по gremlin.
Почему это ведет себя так? Есть ли проблема с синтаксисом команды gremlin? Есть ли лучший способ поиска текста в гремлине?
Я предполагаю, что может быть проблема установки свойств в скрипте загрузки, который использует драйвер python 'pyorient'. Скрипт Python, используемый для загрузки набора данных
Спасибо за вашу помощь.
1 ответ
Я пробовал с 2.1.15, и у меня не было проблем.
Это записи.
РЕДАКТИРОВАНИЕ
Я добавил несколько вершин в свою БД и теперь count()
это 11
QUERY:
g.V.has('eBodyText').filter{it.eBodyText.contains('Syria')}.count()
ВЫХОД:
==>11
Надеюсь, поможет.