Как создать хэш-индекс в ArangoDB через его HTTP API - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать хеш-индекс в ArangoDB через его HTTP API через CURL.

В моем ArangoDB у меня есть несколько баз данных, таких как:

  • Производство
  • постановка
  • тест

Как упоминалось в документах в https://docs.arangodb.com/3.4/HTTP/Indexes/Hash.html, нужно вызывать «Index API» со схемой URL следующим образом:

  • http://localhost:8529/_api/index?collection=products

Применительно к моему варианту использования у меня следующий URL:

  • http://localhost:8529/_api/index?colletion=NodesElectric

Выполнение команды CURL всегда возвращает с ошибкой вроде:

{  
  "error": true,
  "errorMessage": "collection or view not found",
  "code": 404,
  "errorNum": 1203
}

Я полагаю, что проблема вызвана наличием коллекции "NodesElectric" во всех базах данных "production", "staging", ...

У меня вопрос, как мне указать соответствующую базу данных для упомянутой коллекции?

Не нашли подсказки в документах здесь.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 15 января 2019

Любая операция, запускаемая через HTTP REST API ArangoDB, выполняется в контексте ровно одной базы данных. Чтобы явно указать базу данных в запрос, URI запроса должен содержать имя базы данных перед фактический путь:

http://localhost:8529/_db/mydb/... где ... фактический путь к доступ к ресурсу. В этом примере ресурс будет доступен в контекст базы данных mydb. Актуальные URL в контексте mydb может выглядеть так:

http://localhost:8529/_db/mydb/_api/version

Эту информацию можно найти в документации:

https://docs.arangodb.com/3.4/HTTP/Database/

Если в URL-адресе запроса не указана база данных, по умолчанию используется база данных _system.

Чтобы создать хеш-индекс для коллекции NodesElectric в вашей базе данных production, необходимо использовать следующий URL:

http://localhost:8529/_db/production/_api/index?collection=NodesElectric
...