Поделиться через


Руководство. Запрос графа с помощью GQL

Замечание

Эта функция сейчас доступна в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения на уровне обслуживания и не рекомендуется для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

На этом шаге руководства вы запрашиваете граф с помощью GQL (язык запросов Graph) в редакторе кода. GQL предоставляет мощные возможности запросов для сложных шаблонов графов и анализа.

Переключение в режим редактора кода

Выполните следующие действия, чтобы перейти в редактор кода и начать запрос к графу с помощью GQL:

  1. Перейдите на домашнюю страницу вашего графика.

  2. Выберите редактор кода в верхнем меню.

    Снимок экрана: результат выбора редактора кода.

Выполнение базового запроса

  1. Введите запрос GQL в поле ввода. Например, подсчитывать все заказы:

    MATCH (n:`Order`) RETURN count(n) AS num_orders
    
  2. Выберите "Выполнить запрос ", чтобы выполнить запрос.

Этот запрос находит все узлы с Order меткой, подсчитывает их и возвращает общее значение в виде num_orders. Это простой способ подтвердить наличие данных графа. На следующем рисунке показан результат запроса:

Снимок экрана: результат выполнения запроса GQL для подсчета всех заказов.

Восстановите запрос построителя запросов в GQL

На предыдущем шаге руководства вы использовали построитель запросов для поиска продуктов, приобретенных конкретным клиентом. Вот тот же запрос, написанный в GQL:

MATCH (c:Customer)-[:purchases]->(o:`Order`)-[:`contains`]->(p:`Product`)
FILTER c.fullName = 'Carla Adams'
RETURN c.fullName, o, p.productName

Этот запрос:

  1. Соответствует шаблону Покупатель → покупает → Заказ → содержит → Продукт
  2. Фильтры для клиента с именем Карла Адамс
  3. Возвращает полное имя клиента, детали заказа и наименования продуктов

На следующем рисунке показан результат запроса (отображается только часть возвращаемых данных).

Снимок экрана: результат выполнения запроса GQL для поиска продуктов, приобретенных Карлой Адамс.

Выполнение сложного запроса

Можно выполнять более сложные запросы, которые объединяют соответствующие шаблоны графов, фильтрацию, агрегирование, сортировку и ограничение:

MATCH (v:Vendor)-[:produces]->(p:`Product`)->(sc:`ProductSubcategory`)->(c:`ProductCategory`), 
      (o:`Order`)-[:`contains`]->(p)
FILTER c.subCategoryName = 'Touring Bikes'
LET vendorName = v.vendorName, subCategoryName = sc.subCategoryName
RETURN vendorName, subCategoryName, count(DISTINCT p) AS num_products, count(o) AS num_orders
GROUP BY vendorName, subCategoryName
ORDER BY num_orders DESC
LIMIT 5

Этот запрос:

  1. Соответствует шаблону, который подключает поставщиков к продуктам через цепочку поставок и заказы на продукты.
  2. Фильтры для продуктов в категории "туринговых велосипедов".
  3. Определяет переменные для имен поставщиков и подкатегорий.
  4. Возвращает имя поставщика, подкатегорию, отдельное число продуктов и число заказов.
  5. Группировать результаты по поставщику и подкатегории.
  6. Результаты заказов по количеству заказов в порядке убывания.
  7. Ограничивает результаты до 5 лучших.

В сводке показано пять лучших поставщиков, поставляющих продукты в категории "Туринг Велосипеды", а также количество продуктов, которые они предоставляют, и сколько заказов у этих продуктов.

Снимок экрана: результат выполнения запроса GQL для поиска лучших пяти поставщиков, предоставляющих продукты в категории

Дополнительные сведения о поддержке языка GQL см. в следующем разделе:

Следующий шаг