クエリ例

地域を変更する

多くの販売代理店パートナーでは、ユーザーの国に応じて在庫レベルが異なります。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 を持つ部品は除外されます。ある部品に 1 社の販売代理店からでも在庫がある場合、その部品は在庫ありとみなされ、クエリ結果に返されます。

このフィルタリングでは販売代理店の在庫はまったく考慮されず、部品レベルで適用されます。

試せる例を以下に示します。このクエリは AEC-Q100 を検索し、ページネーションの start ページを 5inStockOnlytrue に設定しています。

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 クエリを考えてみましょう。

query MultiMatch {
  supMultiMatch(queries: {mpn: "ASV-18432MHZ-EJ-T", limit: 5}) {
    hits
    parts {
      mpn
    }
  }
}

この場合、ASV-18.432MHZ-EJ-TASV-1.8432MHZ-E-J-T(その他を含む)といった複数の MPN が返されることがあります。

この動作は、elastic search エンジンでインデックス作成のために部品が「トークン化」される方式によるものです。

MPN は特殊文字を無視してトークンに分割されます(例: CV 3-200/SPG は `CV`、`3200`、`SPG` になる場合があります)。

その後、マッチングはトライグラム(3 文字の組み合わせ)を使って行われます。検索ではトークン化された 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 を入力値と比較し、レスポンス受信後にフィルタリングする必要があります。

ワイルドカードの使用

部分的な部品番号で検索すると結果が多すぎる場合や、部品番号の一致条件に特定の要件がある場合があります。このような場合は、ワイルドカードを使って検索を絞り込めます。

  • 文字 * は、任意の文字列(0 文字を含む)に一致します。

  • 文字 ? は、任意の 1 文字に一致します。

ワイルドカードは部品番号内のどこでも使用できます。部品番号の途中を見つけるためにワイルドカードを使う必要はありません。先頭と末尾のワイルドカードは自動的に追加されるためです。たとえば、 *74LS25* は  74LS25 と同じ結果を返します。

語句に 1 つ以上のワイルドカードを追加すると、他のワイルドカードは自動追加されません。これは接頭辞検索に利用できます。たとえば、 lv40 は部品番号内のどこかに  lv40 を含む部品を見つけますが、 lv40* は  lv40 で始まる部品だけを見つけます。

lv40* を検索すると、lv-4000 のような部品が返されることがある点に注意してください。これは、-. のような一部の英数字以外の文字が検索エンジンで処理される方法によるものです。

部品の工場リードタイム

API では 2 つのフィールドをクエリできます。

  1. factoryLeadDaysSupOfferSupOffer は、工場から部品を調達するまでの日数を返します。

  2. estimatedFactoryLeadDaysSupPartSupPart は、信頼できる販売代理店のオファーから算出された工場リードタイムの推定日数を返します。

認定販売元向けのクエリ例を以下に示します。

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-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
コンテンツ