2010年09月30日

NavicSearch API は 2010/11/01に提供を停止する予定です.

2008/07 より提供しておりました NavicSearch API β版は, ECナビのサイト構成の変更により 2010/11/01 に提供を中止することとなりました. ECナビの商品検索は停止しません.

これまでご利用頂きありがとうございました.

2010年02月24日

NavicSearch API β版 仕様

NavicSearchを用いた検索を行なうAPIです. 2010/11/01以降提供を中止しました.

2010/02/24の変更点

  • Solr 1.4を利用するようになりました.
  • item_name フィールドが インデックスサイズ削減のため検索やハイライトの対象ではなくなりました.
  • phps出力形式への対応を止めました. jsonなどをご利用下さい.
  • 2008/12の変更点

  • 毎日情報を更新します.
  • echoParamsパラメータを廃止しました.
  • α版からの変更点

    • 1週間に1回程度情報を更新します.
    • 検索結果を在庫などの情報により変化させる実験を行なう場合があるので, 商品データが同じでも検索結果が異なる場合があります.
    • 内部的にSolrのDistributedSearchを利用するようになりました. DistributedSearch使用時には, PHPSerializedResponseWriter(wt=phps指定時のWriter)が正常に動作しませんので, Writerを差し替えています. ただし, 十分な検証を行なっていませんので利用は推奨致しません.
    • パラメータ「fl」の値に「*」を含めることを許可しました. 「*」が含まれている場合, 「fl」の値がすべての取得可能なフィールドに置き換えられます.

    注意事項

    • このAPIは2010年2月現在β版です.
    • このAPIは現在開発中のECナビの商品検索機能のプレビュー版です.商品データは実際のものですが, プレビュー版であるため,ECナビで検索した検索結果と異なる結果を返す場合があります.
    • 予告して, ないし予告せずにサービスを一時停止することがあります. NavicSearch API 障害・運用情報で報告致します.
    • その他の注意事項については NavicSearch API 注意事項をご覧下さい.

    NavicSearch API 利用例

    単純な検索

    日本語はUTF-8でURLエンコーディングしてください.

    • 「wii」で検索(http://api.ecnavi.jp/shopping/navic_search/select?q=wii 以下略)
    • 「自転車」で検索
    • 「自転車 折りたたみ」で検索. (デフォルトではスペースで区切られた単語はANDで連結されます. 変更したい場合は パラメータ q.op を指定してください)
    • item_allフィールド以外を指定した検索
      出力方式の指定
    • JSON
    • JSONP
    • Ruby
    • Python
    • ファセット
    • 「デンドロビウム」で検索し catname でファセット

      リクエストURI

      http://api.ecnavi.jp/shopping/navic_search/select

      リクエストメソッド

      GETないしPOST

      文字エンコーディング

      UTF-8

      リクエストパラメータ

      リクエストパラメータはSolrのもののサブセットです. Solr Wiki - Search and Indexingもご参照ください.

      q以外のパラメータは任意です.

      一部のパラメータは, Solrに送られる前に書き換えられます. echoParams=explicit を指定することで, Solrに送られたパラメータを閲覧できます.

      重要なパラメータ
      名前 説明
      q 検索クエリ(必須). フィールドを指定しない場合は, item_all フィールドに対して検索が行なわれます. SolrQuerySyntax - Solr Wiki もご参照ください. なお, 大文字小文字は区別されません. いわゆる全角半角の文字も区別されません.
      rows 検索結果の件数. 0以上100以下の値を指定できます. -1 (全件)は指定できません.
      start 検索結果の開始位置.
      sort ソート順を指定します. デフォルトでは, 商品の人気順でソートします. また同じ人気順のものについては全文検索のスコア(score)でソートされます. 商品の人気順のフィール名は非公開です.
      fl 出力するフィールドを指定します. デフォルトでは「フィールド」で上げているもののうちitem_all を除くすべてを出力します. 「*」を指定した場合も同様です.
      fq 検索結果をフィルタします. fqに記述されたクエリは検索のスコアには影響しません.
      wt 出力形式. xml(デフォルト), json(p), ruby, python, phps が指定できます. phpsの利用は推奨しません.
      json.wrf jsonpのコールバック関数名.
      対応リクエストパラメータ一覧
      • wt
      • sort
      • start
      • rows
      • fq
      • fl
      • q
      • q.op
      • facet
      • facet.field
      • facet.query
      • facet.prefix
      • facet.sort
      • facet.limit
      • facet.offset
      • facet.mincount
      • hl
      • hl.fl
      • hl.snippets
      • hl.fragsize
      • hl.mergeContiguous
      • hl.requireFieldMatch
      • hl.maxAnalyzedChars
      • hl.simple.pre
      • hl.simple.post
      • hl.usePhraseHighlighter
      • json.nl
      • json.wrf
      • version
      • indent

      レスポンス

      リクエストパラメータwtで指定された形式に従います.

      エラーが発生した場合には, HTTPのエラー「400 Bad Request」「500 Internal Server Error」「403 Forbidden」を返すことがあります.

      フィールド


      名前 説明
      item_id 商品に振られた一意なid.
      item_name 商品名. この項目は検索対象とせずに item_all を利用してください. ただし, ハイライト機能の利用時にはitem_allではなくこのフィールドを利用してください. この項目は検索の対象ではなくなりました.
      price_min 商品の最低価格
      number_of_shop 取り扱い店数
      1_branch, 2_branch, ... 9_branch カテゴリのブランチのid. 1が一番浅い階層です. 現在は4階層までしか利用していません.
      cat_id カテゴリid. 1_branch, 2_branch, ... 9_branchのうち, 値のあるなかで一番深い階層のid.
      1_catname, 2_catname, ... 9_catname カテゴリのブランチ名
      catname 1_catname, 2_catname, ... 9_catname をスペース区切りで連結したもの. (末尾のスペースは除去). この項目は検索対象とせずに item_all を利用してください. ファセットに利用できます.
      img 商品イメージのURL. このフィールドを用いた検索はできません.
      mall_list 商品を取り扱っているモール(yahoo, rakuten, amazon, bidders, livedoor)のスペース区切りリスト
      item_url ECナビの商品紹介ページのURL. このフィールドを用いた検索はできません.
      item_all catnameとitem_nameの情報を含む検索用フィールド. 値は返しません.

    NavicSearch API 障害・運用情報

    NavicSearch APIの障害・運用情報です.

    2010/11/01
    提供を中止しました.
    2010/02/24 15:30ごろ
    • Solr 1.4を利用するようになりました.
    • item_name フィールドが インデックスサイズ削減のため検索やハイライトの対象ではなくなりました.
    • phps出力形式への対応を止めました. jsonなどをご利用下さい.
    2009/08/15 00:00 - 08/15 24:00
    ECNavi全体のメンテナンスのため, APIの利用ができなくなる場合があります.
    2009/01/02 17:00 - 01/03 24:00
    ECNavi全体のメンテナンスのため, APIの利用ができなくなる場合があります.
    2008/11/25 11:50 - 12:00
    バックエンドのSolrの構成を変更し, 複数台でクエリを処理するようになりました.

    2009年11月17日

    NavicSearch API で利用しているTokenizer 0.7

    Solr 1.4が2009/11/10に公開されました. ECナビではまだSolr 1.4を実際のサービスには利用してませんが, Tokenizerを1.4に合わせて変更したので公開致します.

    NavicSearch APIで利用している Tokenizerは, Solr付属のCJKTokenizerとほぼ同等の動きをします. ラテン文字についてはスペースで分割してTokenを作成. 非ラテン文字については bi-gram でTokenを切り出します.

    ソース: ecnavi-tokenizer-for-solr-1.4-0.7-dev.tar.bz2

    ECナビ デベロッパー ネットワーク: NavicSearch API で利用しているTokenizer 0.5からの変更点は以下の通りです.

    • Solr 1.4に対応しました.

    2008年08月12日

    NavicSearch API 注意事項

    1. このAPIは2008年12月現在β版です.
    2. このAPIは現在開発中のECナビの商品検索機能のプレビュー版です.プレビュー版であるため,ECナビで検索した検索結果と異なる結果を返す場合があります.
    3. 予告して, ないし予告せずにサービスを一時停止することがあります.
    4. 検索に関する注意事項
      • 一文字の日本語を含む単語を検索する場合は, 「日*」などと「*」を補う必要があります.
      • 「つのだ☆ひろ」は「つのだひろ」でも検索可能です. これは「・==☆★・」 については, 日本語の間に挟まれた場合は無視しているからです.
      • 検索語から「-」を除いたほうがよい検索結果が得られます. 理由は以下の通りです. 「-」区切りのASCII文字列は, 区切られた文字列のトークンと「-」を除いたトークンを生成しています. 「cyber-shot」からは「cyber」「shot」「cybershot」という3つのトークンが生成されます. 「cybershot」からは, 「cybershot」というトークンが生成されます. 「cybershot」で検索を行なうと「cybershot」「cyber-shot」のどちらも検索に成功しますが, 「cyber-shot」では「cyber-shot」だけ検索に成功します.
    5. Solrのすべての機能を提供ているわけではありません. たとえば, Flareでは, 検索機能以外にインデックス情報を取得する機能を利用しているので, そのままでは動きません. 手を加えて動かすことはできます.

    2008年07月17日

    NavicSearch API α版 仕様

    NavicSearchを用いた検索を行なうAPIです.

    注意事項

    • このAPIは2008年7月現在α版です.
    • このAPIは現在開発中のECナビの商品検索機能のプレビュー版です.商品データは実際のものですが, データの更新は不定期です. プレビュー版であるためほとんどの場合,ECナビで検索した検索結果と異なる結果を返します.
    • 予告して, ないし予告せずにサービスを一時停止することがあります. NavicSearch API 障害・運用情報で報告致します.
    • その他の注意事項については NavicSearch API 注意事項をご覧下さい.

    NavicSearch API 利用例

    単純な検索

    日本語はUTF-8でURLエンコーディングしてください.

    • 「wii」で検索(http://api.ecnavi.jp/shopping/navic_search/select?q=wii 以下略)
    • 「自転車」で検索
    • 「自転車 折りたたみ」で検索. (デフォルトではスペースで区切られた単語はANDで連結されます. 変更したい場合は パラメータ q.op を指定してください)
    • item_allフィールド以外を指定した検索
      出力方式の指定
    • JSON
    • JSONP
    • Ruby
    • Python
    • PHP
    • ファセット
    • 「デンドロビウム」で検索し catname でファセット
      ハイライト
    • 「自転車 折りたたみ」をハイライト

      リクエストURI

      http://api.ecnavi.jp/shopping/navic_search/select

      リクエストメソッド

      GETないしPOST

      文字エンコーディング

      UTF-8

      リクエストパラメータ

      リクエストパラメータはSolrのもののサブセットです. Solr Wiki - Search and Indexingもご参照ください.

      q以外のパラメータは任意です.

      一部のパラメータは, Solrに送られる前に書き換えられます. echoParams=explicit を指定することで, Solrに送られたパラメータを閲覧できます.

      重要なパラメータ
      名前 説明
      q 検索クエリ(必須). フィールドを指定しない場合は, item_all フィールドに対して検索が行なわれます. SolrQuerySyntax - Solr Wiki もご参照ください. なお, 大文字小文字は区別されません. いわゆる全角半角の文字も区別されません.
      rows 検索結果の件数. 0以上100以下の値を指定できます. -1 (全件)は指定できません.
      start 検索結果の開始位置.
      sort ソート順を指定します. デフォルトでは, 商品の人気順でソートします. また同じ人気順のものについては全文検索のスコア(score)でソートされます. 商品の人気順のフィール名は非公開です.
      fl 出力するフィールドを指定します. デフォルトでは「フィールド」で上げているもののうちitem_all を除くすべてを出力します.
      fq 検索結果をフィルタします..
      echoParams 検索パラメータを出力するかの制御. Solrでは, none(出力しない), explicit(入力で指定したもののみ出力), all(システムのデフォルトも含めたすべてのパラメータを出力)を選択できますが, このAPIでは allは無効です. explicitに変換されます.
      wt 出力形式. xml(デフォルト), json(p), ruby, python, phps が指定できます.
      json.wrf jsonpのコールバック関数名.
      対応リクエストパラメータ一覧
      • wt
      • echoParams
      • sort
      • start
      • rows
      • fq
      • fl
      • q
      • q.op
      • facet
      • facet.field
      • facet.query
      • facet.prefix
      • facet.sort
      • facet.limit
      • facet.offset
      • facet.mincount
      • hl
      • hl.fl
      • hl.snippets
      • hl.fragsize
      • hl.mergeContiguous
      • hl.requireFieldMatch
      • hl.maxAnalyzedChars
      • hl.simple.pre
      • hl.simple.post
      • hl.usePhraseHighlighter
      • json.nl
      • json.wrf
      • version
      • indent
      レスポンス

      リクエストパラメータwtで指定された形式に従います. QueryResponseWriter - Solr Wikiをご参照ください.

      エラーが発生した場合には, HTTPのエラー「400 Bad Request」「500 Internal Server Error」「403 Forbidden」を返すことがあります.

      フィールド


      名前 説明
      item_id 商品に振られた一意なid.
      item_name 商品名. この項目は検索対象とせずに item_all を利用してください. ただし, ハイライト機能の利用時にはitem_allではなくこのフィールドを利用してください.
      price_min 商品の最低価格
      number_of_shop 取り扱い店数
      1_branch, 2_branch, ... 9_branch カテゴリのブランチのid. 1が一番浅い階層です. 現在は4階層までしか利用していません.
      cat_id カテゴリid. 1_branch, 2_branch, ... 9_branchのうち, 値のあるなかで一番深い階層のid.
      1_catname, 2_catname, ... 9_catname カテゴリのブランチ名
      catname 1_catname, 2_catname, ... 9_catname をスペース区切りで連結したもの. (末尾のスペースは除去). この項目は検索対象とせずに item_all を利用してください. ファセットやハイライト処理には利用できます.
      img 商品イメージのURL. このフィールドを用いた検索はできません.
      mall_list 商品を取り扱っているモール(yahoo, rakuten, amazon, bidders, livedoor)のスペース区切りリスト
      item_url ECナビの商品紹介ページのURL. このフィールドを用いた検索はできません.
      item_all catnameとitem_nameの情報を含む検索用フィールド. 値は返しませんし, ハイライト処理も利用できません. ハイライトを行ないたい場合は, catnameかitem_nameを指定してください.

    2008年07月14日

    2008/07/12 Mashup Caravan in Tokyo 発表資料「Solrスゲェ!」

    2008/07/12 Mashup Caravan in Tokyo 発表資料を公開しました.

    2008年07月11日

    NavicSearch API で利用しているTokenizer 0.1

    NavicSearch APIで利用している Tokenizerは, Solr付属のCJKTokenizerとほぼ同等の動きをします. ラテン文字についてはスペースで分割してTokenを作成. 非ラテン文字については bi-gram でTokenを切り出します.

    Solr付属のCJKTokenizerには, 以下の問題があります

    1. 不正な空のトークンが出る
    2. いわゆる半角カナに対応していない

    前者の問題を解決するTokenizerがtwist-bend coupling: CJKTokenizer書き直しにて公開されているので, これを利用して後者の問題も解決するTokenizerを作成して利用しています.

    ソース: ecnavi-tokenizer-0.1.tar.bz2

    NavicSearch API デモサイト

    Flareを利用したデモサイトがhttp://s-tanno.net/にあります.

    http://s-tanno.net/はECナビとは関係のない, 個人で管理するサイトです. 予告せずに停止する可能性がありますのでご了承下さい.

    ソース: flare-s-tanno_net-0.1.tar.bz2