Подтвердить что ты не робот

Neo4j - существует ли синтаксис запроса cypher для отображения (отображения) всех индексов в БД?

Я ищу что-то похожее на MySQL (SHOW INDEXES). Мне удалось получить список индексов, используя py2neo в Python

graphDB = neo4j.GraphDatabaseService()
indexes = graphDB.get_indexes(neo4j.Node)
print(format(indexes))

но я хотел знать, есть ли способ сделать что-то подобное в Cypher.

4b9b3361

Ответ 1

Пока нет. В Neo4j 2.0 было введено более удобное индексирование cypher, и вы можете выпускать некоторые команды DDL для создания и снижения индексов и ограничений, но с 2.01 это (см. docs), В 1.9 вы не можете определить этот тип схемы с помощью cypher вообще.

-

Существует много способов вне cypher, например

В neo4j-shell вы можете

  • список устаревших индексов с index --indexes
  • укажите все индексы и ограничения индексов с помощью schema
  • индексы списка и ограничения для конкретной метки с помощью schema ls -l :YourLabel

В neo4j-browser вы можете

  • перечислите все индексы и ограничения индексов с помощью :schema
  • индексы и ограничения для конкретной метки с помощью :schema ls -l :YourLabel

Большинство API-интерфейсов, которые позволяют выполнять запросы cypher, также предоставляют способы запроса схемы, например

  • Собственный Java API
    • GraphDatabaseService.schema().getConstraints() и .getIndexes() для схемы ярлыков
    • GraphDatabaseService.index().nodeIndexNames() и .relationshipIndexNames() для устаревших индексов
  • REST вызовы
    • /db/data/schema/ конечные точки для схемы с меткой
    • и /db/data/index/node/ и /db/data/index/relationship/ для устаревших индексов

Ответ 2

Как насчет команды :schema? (В оболочке Neo4j это просто schema).

Работает как шарм для меня в Neo4j 2.0.1

Ответ 4

Ну, в Cypher вы не можете этого сделать, но там есть запрос REST API, который работает.

Вы можете проверить его в терминале.

Все индексы в базе данных:

curl http://localhost:7474/db/data/schema/index/

Индексы на определенной метке:

curl http://localhost:7474/db/data/schema/index/User

Ответ 5

Это не совсем ответит на ваш вопрос (I + 1'd jjaderberg).

В py2neo есть некоторая функциональность для меток: http://book.py2neo.org/en/latest/schema/

get_index(label) Получить список индексированных ключей свойств для метки.

FYI, в оболочке вы можете использовать недокументированную команду schema.