Частичное соответствие Shopify GraphQL по фильтру запросов

Я только начинаю работать с новым Shopify GraphQL Admin API. Пытаюсь получить все продукты, где в поле title есть определенное слово.

В настоящее время я могу успешно получить продукт, включив полное название продукта (точное совпадение):

{
  shop {
    id
    name
  }
  products(first: 10, query:"title:'RAVEN DUSTY OLIVE/SILVER MESH'") {
    edges {
      node {
        productType
        title
      }
    }
  }
}

Однако я хочу частично сопоставить заголовок, чтобы отображать все продукты со словом «Ворон» в любом месте заголовка, но следующее не возвращает результатов:

{
  shop {
    id
    name
  }
  products(first: 10, query:"title:'RAVEN'") {
    edges {
      node {
        productType
        title
      }
    }
  }
}

Есть идеи о том, как заставить работать частичное сопоставление?

Вы пытались спросить команду Shopify Tech, если они тайно проскользнули в какую-то поддержку оператора для оператора типа LIKE? GraphQL - это не SQL, и не существует такой вещи, как частичное сопоставление, если базовая реализация не предоставила его. Если Shopify не опубликовал такую ​​вещь, вам там не повезло. Вернемся к основам получения всех продуктов самостоятельно и последующей фильтрации в собственном коде. Я предполагаю, что если бы достаточное количество людей попросили частичное сопоставление, они предоставили бы для него оператор функции с более высокой стоимостью, чем простое сопоставление Джейн.

David Lazar 11.08.2018 23:21

Спасибо @DavidLazar, решено после публикации вопроса .. что действительно Shopify должен иметь преобразователь, чтобы это работало :( Вернемся к старому доброму REST API, по крайней мере, он поддерживает некоторую фильтрацию по атрибуту заголовка из Будет пинговать команду Shopify по этому поводу, так что, надеюсь, в будущем мы, возможно, сможем получить его и на GraphQL API.

Bjorn Forsberg 13.08.2018 09:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
2
1 801
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Бьорн! Это должно работать:

{
  shop {
    id
    name
  }
  products(first: 10, query:"title:RAVEN*") {
    edges {
      node {
        productType
        title
      }
    }
  }
}

Ознакомьтесь с документами: https://help.shopify.com/en/api/getting-started/search-syntax

Какие-нибудь подсказки о том, почему синхронизация "title: RAVEN *" не работает для меня? Я перепробовал все очевидные вещи. Тестирование краев коллекций вместо продуктов.

Learner 25.09.2020 05:56

Также вы можете попробовать

query: "title:*${searchText}*"

вы можете увидеть два * в начале и в конце

Другие вопросы по теме