Мы недавно заметили, что эти ошибки возникают для одной из наших пограничных коллекций. Ни одна из рекомендаций по выгрузке и загрузке индекса не помогла.
Индекс, на который ссылается этот журнал ошибок, является индексом по умолчанию (_from, _to indexes), автоматически созданным ArangoDB, и я не контролирую его. Я думаю, это может объяснить, почему предложение по выгрузке / загрузке индекса не сработало.
Между тем, это не просто раздражает, из-за проблемы, некоторые запросы не дают результатов, которых мы ожидаем.
К сожалению, я не смог найти никаких предложений о том, как решить эту проблему, и мне интересно, могут ли разработчики ArangoDB предложить решение?
Журналы ошибок, на которые я ссылался
2020-04-10T03:44:10Z [1] ERROR [3acb3] {graphs} Could not extract indexed edge document, return 'null' instead. This is most likely a caching issue. Try: 'db.contributor_action.unload(); db.contributor_action.load()' in arangosh to fix this.
2020-04-10T03:44:10Z [1] ERROR [3acb3] {graphs} Could not extract indexed edge document, return 'null' instead. This is most likely a caching issue. Try: 'db.contributor_action.unload(); db.contributor_action.load()' in arangosh to fix this.
2020-04-10T03:44:10Z [1] ERROR [3acb3] {graphs} Could not extract indexed edge document, return 'null' instead. This is most likely a caching issue. Try: 'db.contributor_action.unload(); db.contributor_action.load()' in arangosh to fix this.
2020-04-10T03:44:10Z [1] ERROR [3acb3] {graphs} Could not extract indexed edge document, return 'null' instead. This is most likely a caching issue. Try: 'db.contributor_action.unload(); db.contributor_action.load()' in arangosh to fix this.
2020-04-10T03:44:10Z [1] ERROR [3acb3] {graphs} Could not extract indexed edge document, return 'null' instead. This is most likely a caching issue. Try: 'db.contributor_action.unload(); db.contributor_action.load()' in arangosh to fix this.
Пример AQL, который раскрывает проблему
LET c1 = (
FOR ca in contributor_action
COLLECT WITH COUNT INTO count
RETURN count
)[0]
LET c2 = (
FOR ca in contributor_action
FOR c IN contributor FILTER ca._from == c._id
COLLECT WITH COUNT INTO count
RETURN count
)[0]
RETURN {c1, c2}
Результат показывает несоответствие между выполнением AQL с индексом и без
{
"c1": 1123421,
"c2": 1121787
}