AmazonのAPIでゲームの関連度順の検索ができない

2011/3/21追記 解決方法がわかりました。Net::Amazonでキーワード関連順の検索をする方法 - hsksnote


困った。
AmazonProduct Advertising APIを試してるんだけど、これで関連度順の検索ができない。今まで試してみてダメだったやり方をまとめておく。

やりたいのはこんなの。

上のほうのジャンルで「TVゲーム」を選んでいて、右側の並べ替えで「キーワードに関連する商品」を選んでいる。

これをcatalystでNet::Amazonを使って実装する。

まずは素直に。

sub amazon : Local {
    my ($self, $c) = @_;
    
    my $ua = $c->model('Net::Amazon');
    
    my $response = $ua->search( 
        keyword => 'ゼノブレイド' ,
        sort => 'relevancerank',
        mode => 'VideoGames',
    );
    if ( !$response->is_success ) {
        $c->response->body( $response->message );
    }
    $c->stash->{entries} = [$response->properties];
}

これで動かすと、こんなエラーメッセージが出る。

Sortに指定した値は無効です。'salesrank','price','-price','titlerank','-titlerank','release-date','-release-date','releasedate','-releasedate'などが有効な値の例です。

'pmrank'、'+pmrank'でも同様。
確かに、開発者向けガイドには、関連度順のソートが無いものねー。

SearchIndex: VideoGames

Value Description
salesrank Bestselling
price Price: low to high
-price Price: high to low
titlerank Alphabetical: A to Z
-titlerank Alphabetical: Z to A
-release-date Release date: newer to older
release-date Release date: older to newer
releasedate Items are sorted such that the most recently released item is listed first. Same as release-date.
-releasedate Items are sorted such that the last released item is listed first. Same as -release-date.

http://docs.amazonwebservices.com/AWSECommerceService/2010-11-01/DG/index.html?JPSortValuesArticle.html#JPSortValuesArticle_videogames

では、他にやり方は無いか?ソート条件を指定しなかった場合、BrowseNodeを指定していなければ関連度順(relevancerank)、指定していたら売れてる順(Bestselling)で並ぶと書いてある。
参考:http://docs.amazonwebservices.com/AWSECommerceService/2010-11-01/DG/index.html?DefaultSortValues.html
これを使おう。コードからsort条件を削除してみると、結果はこう。

売れている順ソートになってる。うーん。

ちなみに、modeをBooksにして、ソート条件を指定しないと、関連度順の結果が得られる。

ゲームメーターでは、関連度順の結果が得られているから、なにかしらやり方があると思うんだけどなー。