Примеры запросов

Изменение региона

Многие наши партнеры-дистрибьюторы показывают разные уровни складских остатков в зависимости от страны пользователя. По умолчанию API использует US и USD в качестве страны и валюты, но эти значения можно переопределить, чтобы получить результаты, более подходящие для вашего региона.

Сравните запрос для Великобритании:

query GBMatch {
  supMultiMatch(
    country: "GB"
    currency: "GBP"
    queries: [{ mpn: "AR 32 HZL-TT", limit: 3 }]
  ) {
    parts {
      sellers(authorizedOnly: true) {
        company {
          name
        }
        offers {
          inventoryLevel
        }
      }
    }
  }
}

... с запросом для США: 

query USMatch {
  supMultiMatch(
    queries: [{ mpn: "AR 32 HZL-TT", limit: 3 }]
  ) {
    parts {
      sellers(authorizedOnly: true) {
        company {
          name
        }
        offers {
          inventoryLevel
        }
      }
    }
  }
}

В этом случае, в этот конкретный день, для отправки в GB было доступно 1 370 компонентов. Однако пользователи в США увидели бы только 300 доступных компонентов.

Многие дистрибьюторы осуществляют поставки в несколько стран или не разделяют складские остатки по странам, поэтому входные значения страны и валюты не используются как жесткий фильтр.

Коды стран соответствуют стандарту ISO 3166 (alpha-2); коды валют соответствуют стандарту ISO 4217. 

Точное совпадение mpn с конкретными поставщиками

Используя запрос SupMultiMatch :

query MultiMatch {
  supMultiMatch(
    queries: [{mpn: "FH12-5S-1SH(55)", limit: 2}]
    options: {filters: {distributor_id: ["459", "1106", "2401", "2628", "2454", "3261", "12947"]}}
  ) {
    hits
    parts {
      mpn
      name
      sellers {
        company {
          name
        }
        offers {
          prices {
            price
            currency
          }
        }
      }
    }
  }
}

Обратите внимание: это отфильтрует компоненты, продаваемые указанным(и) дистрибьютором(ами). Список дистрибьюторов доступен здесь. Если этот компонент также продают другие дистрибьюторы, они тоже будут перечислены. При необходимости вы всегда можете отфильтровать их на своей стороне при обработке.

Вместо ID компании, например "459", можно указать название компании, например "Digi-Key". Вот пример:

query MultiMatch {
  supMultiMatch(
    queries: [{mpn: "FH12-5S-1SH(55)", limit: 2}]
    options: {filters: {distributor_id: ["Digi-Key"]}}
  ) {
    hits
    parts {
      mpn
      name
      sellers {
        company {
          name
        }
        offers {
          prices {
            price
            currency
          }
        }
      }
    }
  }
}

Компоненты от продавцов с информацией о цене

Вот пример запроса, который можно использовать в вашей IDE:

query FindPrices {
  supSearch(q: "AEC-Q100", limit: 3) { 
    results {
      part {
        mpn
        manufacturer {
          name
        }
        sellers(includeBrokers: false) {
          company {
            name
          }
          offers {
            clickUrl
            inventoryLevel
            prices{
              price
              currency
              quantity
            }
          }
        }
      }
    }
  }
}

Точное совпадение компонента

Запрос supMultiMatch позволяет вводить несколько MPN для получения данных и ищет точное совпадение для каждого из них.

query MatchParts {
  supMultiMatch(queries: [{mpn: "G3VM-101PR"}]) {
    hits
    reference
    parts {
      id
      slug
      mpn
      manufacturer {
        name
      }
    }
  }
}

Фильтрация компонентов, имеющихся в наличии

При поиске можно указать, что нужно включать только компоненты, которые есть в наличии. Например:

supSearch(q: "LM339", limit: 1, inStockOnly: true) { ... }

Если установить этот фильтр в true, то будут исключены компоненты, у которых no stock at all. Если у компонента есть остатки хотя бы у одного дистрибьютора, он считается имеющимся в наличии и возвращается в составе запроса.

Эта фильтрация вообще не учитывает складские остатки дистрибьюторов — она применяется на уровне компонента.

Вот пример, который можно попробовать. Этот запрос ищет AEC-Q100 с пагинацией start page, равной 5, и параметром inStockOnly, установленным в true:

query in_stock_filter{
  supSearch(q: "AEC-Q100", start: 5, inStockOnly: true) { 
    results {
      
      part {
        mpn
        manufacturer {
          name
        }
        sellers(includeBrokers: false) {
          company {
            name
          }
        }
      }
    }
  }
}

Возвращаются неожиданные MPN

При поиске или сопоставлении иногда находятся дополнительные компоненты, у которых MPN отличаются только неалфавитно-цифровыми символами, например - или ..

Например, рассмотрим запрос supMultiMatch для следующего MPN: Это может вернуть несколько MPN, таких как ASV-18.432MHZ-EJ-T, а также ASV-1.8432MHZ-E-J-T (и другие).

Такое поведение связано со способом "токенизации" компонентов для индексации в поисковом движке elastic.

MPN разбиваются на токены с игнорированием специальных символов (например, CV 3-200/SPG может быть преобразован в `CV`, `3200`, `SPG`).

Затем сопоставление выполняется с использованием триграмм (трехбуквенных комбинаций). Поиск должен полностью совпадать с токенизированным MPN, но частичные совпадения зависят от триграмм. Например:

  • Match: "CV 3-20", "CV 320", "00 SPG" - Each part aligns with at least one full token

  • No Match: "CV 3", "CV 3-", "CV 32" - No part of these aligns with any token

Если требуется точное символьное совпадение, клиентское приложение должно сравнить полученные MPN с исходным значением и выполнить фильтрацию после получения ответа.

Использование подстановочных символов

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

  • Символ * соответствует любой последовательности символов (включая нулевую длину).

  • Символ ? соответствует любому одному символу.

Подстановочные символы можно использовать в любом месте номера компонента. Использовать их для поиска середины номера компонента не требуется — ведущие и завершающие подстановочные символы добавляются автоматически. Например, *74LS25* возвращает те же результаты, что и 74LS25.

Если вы добавляете один или несколько подстановочных символов в термин, никакие другие подстановочные символы автоматически не добавляются. Это можно использовать для префиксного поиска. Например, lv40 находит компоненты, содержащие lv40 в любом месте номера компонента, тогда как lv40* находит только компоненты, начинающиеся с lv40.

Обратите внимание, что поиск по lv40* вернет такие компоненты, как lv-4000, из-за того, как поисковый движок обрабатывает некоторые неалфавитно-цифровые символы, например - или ..

Срок поставки компонентов с завода

В API есть два поля, которые можно запрашивать.

  1. factoryLeadDays в SupOffer возвращает количество дней, необходимое для получения компонентов с завода.

  2. estimatedFactoryLeadDays в SupPart возвращает расчетный срок поставки с завода в днях, полученный на основе предложений доверенных дистрибьюторов.

Вот пример запроса для авторизованных продавцов:

query LeadDaysSearch {
  supSearch(q: "IRL3803STRLPBF", limit: 2) {
    results {
      part {
        mpn
        estimatedFactoryLeadDays
        sellers(authorizedOnly: true) {
          offers {
            factoryLeadDays
          }
        }
      }
    }
  }
}

Похожие компоненты

При поиске или сопоставлении компонентов можно указать, что нужно возвращать similarParts. Это компоненты, которые Nexar определил как схожие по характеристикам и функциональности. Вот пример запроса:

query SimilarParts {
  supSearch(q: "LM339MX", limit: 1) {
    hits
    results {
      part {
        id
        mpn
        name
        manufacturer { name }
        similarParts {
          id
          mpn
          manufacturer { name }
        }
      }
    }
  }
}

 

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Контент