Здравствуйте, сообщество ArangoDB,
Я импортировал две коллекции из sqlite в ArangoDB с помощью arangoimport (через CSV).Далее я пытаюсь запустить простой AQL для перекрестной ссылки на эти коллекции (с конечной целью - соединить их через ребра).Collection1 имеет 1 682 642 документаВ Collection2 есть 3290 документов
. Следующему AQL требуется колоссальные 30 секунд для завершения:
FOR c1 IN Collection1
FOR c2 IN Collection2
FILTER c2._key == TO_STRING(c1.someField) return {"C2": c2._id, "C1": c1._id}
Если я так переключаю конверсию, это занимает вечность (я забросил через 5 минут):
FOR c1 IN Collection1
FOR c2 IN Collection2
FILTER TO_NUMBER(c2._key) == c1.someField return {"C2": c2._id, "C1": c1._id}
Добавление индекса для someField не помогло.Тот же самый запрос JOIN в Sqlite (из которого были импортированы данные) занимает менее 1 секунды для завершения
Несколько мыслей и вопросов:1) Как я могу узнать типы данных полей в документе?2) _key - это строка.Я думаю, что someField - это число (потому что без TO_STRING результаты не возвращаются).3) Эффективно ли добавление TO_STRING в "someField" делает индекс для поля непригодным для использования?4) Есть ли способ сделать _key число (желательно целое число).Я думаю, что сравнение чисел быстрее, не так ли?5) В качестве альтернативы, я могу сказать arangoimport, чтобы "someField" был строкой?6) Что еще я могу сделать, чтобы AQL работал быстрее?
Любой вклад приветствуется,Elad