サーチビンによる商品の検索

トピック

これまで、オペレーションの入力パラメータとレスポンスグループを使用して不要なレスポンスを除去する方法について説明してきました。SearchBins レスポンスグループでは、検索結果を絞り込むための、サーチビンと呼ばれる別の機能が用意されています。サーチビンを使用すると、レスポンスで返される値に基づいて結果をフィルタリングできます。

SearchBins レスポンスグループは、 ItemSearch で返される商品をビンと呼ばれるグループに分類します。分類は、サーチインデックスに応じた条件に基づいて行われます。例えば、商品価格帯に基づいてビンのセットを作成できます。レディース用のシューズの場合、SearchBins を指定すると、価格が0~50ドルのシューズの ASIN が含まれるビン、価格が50~100ドルのシューズのビン、100ドル超のシューズのビンが返されます。 

サーチビンを使用する利点は、自分で商品の属性を返したり解析したりしなくても、レスポンスグループによって商品がビンに分割されることです。次に、もう一度、 ItemSearch を実行し、1つのビン内の商品だけを返します。

ビンの作成、または商品のグループ分け基準の指定はできません。この処理は、SearchBins レスポンスグループによって自動的に実行されます。

一部のサーチインデックスは、2種類以上のビンをサポートしています。例えば、アパレル商品は、価格帯とブランドに基づいたビンに分割できます。この場合、レスポンスには、SearchBinSets と呼ばれる複数のビンのセットが返されます。その中に異なる条件に基づいて商品が分割されます。

返される商品をビンに分割するのに使われる基準は NarrowBy 値と呼ばれるものです。

[注]注意

サーチビンは US サイトでのみ使用できます。

関連するトピック

サーチビンの例

次のリクエストでは、サーチビンを返す SearchBins レスポンスグループを使用します。

Service=AWSECommerceService&
AWSAccessKeyId=[アクセスキー ID]&
Operation=ItemSearch&
SearchIndex=Baby&
Keywords=pants&
Availability=Available&
MerchantId=All&
Condition=All&
ResponseGroup=SearchBins

次のXMLコードはレスポンスの一部です。

<SearchBinSets>
  <SearchBinSet NarrowBy="PriceRange">
  <Bin>
    <BinName>$0$24</BinName>
    <BinItemCount>1645</BinItemCount>
    <BinParameter>
      <Name>MinimumPrice</Name>
      <Value>0</Value>
    </BinParameter>
    <BinParameter>
      <Name>MaximumPrice</Name>
      <Value>2499</Value>
    </BinParameter>
  </Bin>
  <Bin>
    <BinName>$25$49</BinName>
    <BinItemCount>647</BinItemCount>
    <BinParameter>
      <Name>MinimumPrice</Name>
      <Value>2500</Value>
    </BinParameter>
    <BinParameter>
      <Name>MaximumPrice</Name>
      <Value>4999</Value>
    </BinParameter>
  </Bin>
  <Bin>
    <BinName>$50$99</BinName>
    <BinItemCount>173</BinItemCount>
    <BinParameter>
      <Name>MinimumPrice</Name>
      <Value>5000</Value>
      </BinParameter>
    <BinParameter>
      <Name>MaximumPrice</Name>
      <Value>9999</Value>
    </BinParameter>
  </Bin>

この例は、レスポンスの最初の3つのビンを示しています。NarrowBy の値は、商品が価格帯に基づいて分割されていることを示します。BinName の要素名がビンです。要素名は、各ビンが表す価格帯を示しています。例えば、$50$99というBinNameには、そのビンのMinimumPriceとMaximumPriceで返される値だとわかるように、価格が50~99.99ドルの商品が含まれています。BinItemCount 要素は、各ビンに含まれている商品の数を示します。例えば、最後のビンには173個の商品が含まれています。

BinParameter/Value 要素は、ビンを作成するのに使用した値を示します。この例では、パラメータはそのビン内の商品の最低価格と最高価格です。例えば、最後のビンでは、そのビン内の商品の最低価格は50.00ドル、最高価格は99.99ドルになります。

BinParameter/Name の値である MaximumPrice などは、 ItemSearch のパラメータ名です。つまり、以降の ItemSearch リクエストで、 <Name> という名前のパラメータの値として<Value> を使用できます。この例で、MinimumPriceItemSearch パラメータであり、最後のビンでの値は5000です。2度目のリクエストを、 ItemSearchのパラメータとしてMinimumPriceおよびMaximumPriceを使用して送信することで、そのビン内の商品固有の属性を返すことができます。

この例からわかるように、SearchBins レスポンスグループを使用すると、商品属性を解析しなくても、検索を絞り込むことができます。

ItemSearch リクエストを繰り返し実行することによる結果の調整

サーチビンを使用する利点の1つは、商品属性を解析しなくても条件に基づいて商品をグループ化できることです。返されたサーチビンを基に ItemSearch パラメータを使用して2度目のリクエストを実行することにより、結果を絞り込むことができます。ここではその方法について説明します。

ビンの名前とビンを表すパラメータは、ビンによって異なります。次の例は、価格に基づいたビンの例を示しています。

<SearchBinSetNarrowBy="PriceRange">
<Bin>
  <BinName>$0$24</BinName>
  <BinItemCount>1645</BinItemCount>
  <BinParameter>
    <Name>MinimumPrice</Name>
    <Value>9</Value>
  </BinParameter>
  <BinParameter>
    <Name>MaximumPrice</Name>
    <Value>2499</Value>
  </BinParameter>
</Bin>

レスポンスは、ビン内の商品の最低価格0ドルと最高価格2ドル、およびその範囲にある商品数1645を示しています。

NarrowBy に他の値を指定すると、ビンに異なる名前が付けられます。次の例は、NarrowBy が "Merchant" の場合のレスポンスを示しています。この場合、BinParameter の名前はマーチャントIDです。

<SearchBinSet NarrowBy="Merchant">
<Bin>
  <BinName>Sports"R"Us</BinName>
  <BinItemCount>860</BinItemCount>
  <BinParameter>
    <Name>MerchantId</Name>
    <Value>A363XKZVKSMVXW</Value>
  </BinParameter>
</Bin>
<Bin>
  <BinName>Target</BinName>
  <BinItemCount>8</BinItemCount>
  <BinParameter>
    <Name>MerchantId</Name>
    <Value>A1VC38T7YXB528</Value>
  </BinParameter>
</Bin>
</SearchBinSet>

これらの例からわかるように、BinParameter の名前は、 ItemSearch の入力パラメータ名と同じになります。このことは、サーチビンの結果を ItemSearch のパラメータ値として使用し、2度目の ItemSearch リクエストを作成できることを意味します。例えば、MinimumPriceおよびMaximumPriceが、PriceRangeに基づいたサーチビンで返されます。次に、サーチビンの値を ItemSearch のパラメータに直接設定できます。上の PriceRange の例を使用すると、次の ItemSearch リクエストで最初のサーチビン内の商品だけを取得するようにできます。

http://ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService&
AWSAccessKeyId=[AWS アクセスキー ID]&
Operation=ItemSearch&
SearchIndex=Baby&
Keywords=pants&
Availability=Available&
Condition=All&
MinimumPrice=0& MaximumPrice=2499&
ResponseGroup=SearchBins

ItemSearch は、SearchBins レスポンスグループが再度使われているため、このリクエストの結果を別のサーチビンのセットに分割します。つまり、最初のレスポンスの最初のサーチビンの価格帯が、2度目のリクエストに対するレスポンスで複数のサーチビンに分割されます。2度目のレスポンスでは、価格帯がさらに細分化されます。例えば、最初のレスポンスから、価格が0~24.99ドルの全ての商品を返すことができます。2度目のレスポンスから、10~14.99ドルなど、さらに細かい価格帯を得ることができます。

SearchBin を使用して検索結果を絞り込むには

  1. SearchBins レスポンスグループを ItemSearch リクエストで指定します。

    レスポンスでは、narrowby の値と結果が、ビンでグループ化されます。

  2. 関連する ItemSearch パラメータを使用して、2度目のリクエストを送信し、指定したビン内の商品に関連する結果だけを返します。

    例えば、NarrowByの値がPriceRangeの場合、関連する ItemSearch パラメータはMinimumPriceおよびMaximumPriceです。

  3. 結果をさらに絞り込む場合は、2度目のリクエストで SearchBins レスポンスグループを使用して手順を繰り返します。

このように、 ItemSearch パラメータにサーチビンの結果を使用する手順は繰り返し実行できます。例えば、1つのサーチビンを複数のサーチビンに分割するのに、SearchBins レスポンスグループを使用して、3度目のリクエストを送信できます。この処理は、目的とする詳細レベルに達するまで繰り返すことができます。目的の詳細レベルに達したら、他に必要なレスポンスグループを使用し、最後のリクエストを送信できます。

これ以外の方法で検索結果を絞り込むこともできます。一部のサーチインデックスは、複数セットのサーチビンを返します。その場合、複数のサーチビンの値を ItemSearch リクエストで使用できます。前の例を使用すると、レスポンスに NarrowBy の値である BrandName に基づくサーチビンも含まれている場合は、ブランドと価格帯の値を ItemSearch リクエストで使用できます。

Brand=Levi’s&
MinimumPrice=0&
MaximumPrice=2499&

レスポンスには、Levi’sの、25ドル未満のシャツだけが含まれます。リクエストにパラメータを追加することで、さらに細分化することもできます。

ItemSearch リクエストのヒント

ここでは、正確なItemSearchリクエストを作成するのに役立つヒントを説明します。

Condition パラメータのデフォルト値は "New" です。

目的の結果が得られず、Condition を指定していない場合は、パラメータに "All" を設定します。これにより、全てのコンディションが返されます。デフォルトの "New" 以外の値に変更した場合、MerchantId パラメータにも "All" を設定する必要があります。設定しないと、同じ結果になります。その理由は、MerchantId のデフォルト値が Amazon であるためです。Amazon は新品だけを出品しているため、レスポンスには新品の商品だけが含まれます。これは、Condition がデフォルト値の "New" の場合と同じです。MerchantId に "All" を設定すると、レスポンスに、全てのコンディションで商品を出品しているマーチャントが含まれます。

MerchantIdパラメータのデフォルト値は "Amazon" です。

他のマーチャントが出品している商品や、コンディションが "New" でない商品を検索する場合は (Amazon は新品だけを出品しています)、MerchantId を使用してマーチャントを指定するか、"All" を設定して全てのマーチャントを検索します。

Keywordsパラメータは、商品のタイトルと解析に含まれる単語を検索します。

単語が商品のタイトルに含まれていることがわかっている場合は、Title パラメータを使用します。これは、Keywords パラメータを使用した場合より少量で、正確な結果が得られることが多いためです。

テキストブロックを使用するには、TextStreamパラメータを使用して検索します。

詳細については、 ItemSearchをご参照ください。

AND、NOT、ORなどのブール値を使用するには、 ItemSearch リクエストで Power パラメータを使用します。

このパラメータを使用することで、よりきめ細かい検索条件を作成できます。詳細については、ItemSearchをご参照ください。