Я использую OrientDB 2.1.11 и rexster 2.6, а гремлин является основным языком запросов. Использую через rexpro (и rexster REST). Моя проблема: как получить индексы для попадания из гремлина (я должен использовать гремлин, а не ориентировать sql).
У меня есть почтовый индекс класса вершины, у которого есть 1 свойство zip_code, определенное в схеме и проиндексированное как словарь:
zipcode.zip_code DICTIONARY ["zip_code"] SBTREE
Но когда я запрашиваю его с помощью gremlin, он работает медленно, когда количество записей составляет около> 25 КБ (не тестировалось с меньшими числами). Чтобы дать правильный контекст, я сначала пытаюсь найти почтовый индекс, если он не существует, я создаю вершину для дальнейшего использования. Поисковый запрос выглядит так:
g.V('@class', 'zipcode').has('zip_code','10018')
Вопрос: попадает ли gV ('@ class' ... в индексы? Разве это не превышает 1000000 объектов V? Есть ли способ написать его лучше, чтобы он был более эффективным для моего класса вершин, то есть zipcode? Мне просто нужно сопоставить свойство вершин в моем классе (почтовый индекс).
Что лучше использовать has('zip_code', '12345')
или filter {it.zip_code == '12345'}
? Какой из них попадет в созданный индекс?
Что, если мне нужно сопоставить более 1 свойства для сопоставления:
.has('zip_code', '12345').has('state','NY').has('city','NEW YORK')
будет ли «индексы попаданий» или «фильтр {}»? пожалуйста, порекомендуйте.