Согласно Titan Wiki, стандартный индекс Titan может выполнять только запросы с точными совпадениями, а использование эластичного поиска позволит мне выполнять запросы с числовыми диапазонами и полнотекстовый поиск.
Однако, когда я выполняю следующее БЕЗ elasticsearch:
g=TitanFactory.open('e:/titan-cassandra.properties');
v=g.addVertex(null);
v.setProperty('mytext','i am the first vertex.');
v.setProperty('age',123);
v=g.addVertex(null);
v.setProperty('mytext','hello from a vertex.');
v.setProperty('age',456);
v=g.addVertex(null);
v.setProperty('mytext','hello world.');
v.setProperty('age',789);
System.out.println();
g.V.map;
System.out.println();
g.V.has('mytext',Text.REGEX,'.*vertex.*').map;
System.out.println();
g.V.has('mytext',Text.REGEX,'.*hello.*').map;
System.out.println();
g.V.has('age',Cmp.GREATER_THAN_EQUAL,200).has('age',Cmp.LESS_THAN_EQUAL,700).map;
Я могу получить правильные результаты следующим образом:
==>{mytext=i am the first vertex., age=123}
==>{mytext=hello from a vertex., age=456}
==>{mytext=hello world., age=789}
==>null
==>{mytext=hello from a vertex., age=456}
==>{mytext=i am the first vertex., age=123}
==>null
==>{mytext=hello world., age=789}
==>{mytext=hello from a vertex., age=456}
==>null
==>{mytext=hello from a vertex., age=456}
Я очень любопытный. Почему это происходит? Требуется ли эластичный поиск по-прежнему для выполнения поиска по регулярным выражениям или поиска по числовому диапазону?
Спасибо.