Как получить идентификатор вершины в Nebula Graph, указав значение одного из ее атрибутов - PullRequest
1 голос
/ 20 февраля 2020

Я использую Nebula Graph для хранения графика нескольких узлов. Например: у меня TAG с именем Entity имеет одно имя атрибута, вызов EDGE с именем без атрибутов. Я вставил много вершин типа Entity, и у них есть край вызова типа между ними. Я хочу запросить в моем графе указанную вершину c. У меня есть только его имя, я не знаю идентификатор, под которым он был вставлен. Я прочитал руководство по ngql и перешел к использованию оператора "Go from". Я не смог найти способ выполнить запрос, начиная со значения атрибута вершины. Может ли кто-нибудь помочь мне в этом? : Я хочу сделать это: найти идентификатор вершины, который имеет имя = "х".

1 Ответ

0 голосов
/ 25 февраля 2020
CREATE {TAG | EDGE} INDEX [IF NOT EXISTS] <index_name> ON {<tag_name> | <edge_name>} (prop_name_list)

LOOKUP ON {<vertex_tag> | <edge_type>} WHERE <expression> [ AND | OR expression ...]) ] [YIELD <return_list>]

Например, в вашем случае предположим, что у вас есть тег сущность , в нем есть два свойства: name и age . Если вы хотите узнать идентификатор вершины с именем Amber , запрос будет следующим: Сначала вы строите индекс для entity :

CREATE TAG entity(name string, age int);

CREATE TAG INDEX entity_index ON entity(name, age);

INSERT VERTEX entity(name, age) VALUES 101:("Amber", 21);

LOOKUP ON entity WHERE entity.name == "Amber";

============
| VertexID |
============
| 101      |
------------

Если Вы не указываете ключевое слово YIELD, идентификатор вершины возвращается по умолчанию. Дайте мне знать, если это поможет.

Примечание:

  1. Сначала создайте тег, а затем индекс. (Поскольку перестроение индекса сейчас не поддерживается.)
  2. Вы вставляете данные после создания индекса.
...