tk0miyaさんから、Python Web フレームワークアドベントカレンダーのパスが回ってきました。ちなみに当方、現在、The Art of Communityの翻訳直しが佳境なのと、本田技術研究所を辞めて転職することにしたのと、それに伴って引っ越しの準備やらで首がまったく回っていません。Pythonのアドベントカレンダーは、なぜか遅れるとバリカンという殺伐した話になっていて、恐怖で禿げそうです。あ、退職の話は年末に落ち着いたら書くかも。
今回のネタは、僕がユーザグループの会長をやっている、Sphinxのお話にしようと思います。Sphinxに関しては、@r_rudiさんが実用系の話を既に書いてくださっていますので、僕はハック方面で話をします。ちょうど冬休みですし、Pythonを使った入門 自然言語処理の本が最近出たり、前にも集合知プログラミング
という面白い本が出ていたりして、空前の検索エンジン自作ブームが訪れようとしているのかもしれないけど、やっぱり自分でゼロから作るのはなぁ・・・という人向けのエントリーです。はい。読者少なそうですね。気にせずに進んで行きましょう。
Sphinxの検索の仕組み
もしかしたら、Sphinxというツールについて知らない方もいるかもしれないので、軽く紹介しておくと、ファラオのピラミッドパワーのご加護によってモテモテ間違いなし品質の高いドキュメントが素早く作成できるようになる、ドキュメントジェネレータです。PDFやHTMLで出力できますし、ePub出力や、清水川先生の開発中のWord2007出力、僕が作成中のKindleファイル出力など、夢がいくらあっても足りない!というステキツールです。「ステキすぎる!今年のクリスマスにはSphinxが欲しいわ!」と思われた方も片手で数えられないぐらいいると思いますが、サンタさんにお願いする必要はありません。なんとタダでダウンロードできます!BSDライセンスです。すばらしいですね!
SphinxではHTML出力ができるということは紹介しました。静的HTMLが出ますが、なんと検索窓が付いています。通常は、検索を実現するには、ウェブサーバ上で、CGIなりウェブアプリケーションサーバを動かし、検索して結果をHTMLで整形して返す、といったことが行われていますが、Sphinxは単なる静的ファイルのみが出てきます。どのように動作しているのでしょうか?
ヒミツはsearchindex.jsというファイルにあります。これは、make htmlを実行したときに生成されるファイルです。中には何が書かれているんでしょうか?一部抜粋してみます。
Search.setIndex({
terms:{
jsmath_path:38,
autoclass_cont:[36,21],
get_object:39,
sourcelink:16,
four:[0,1,26],
objtyp:39,
prefix:[0,7,36,30,8,39,22,35,16,27,6,17]},
filenames:
["templating","markup/para","rest","intro","examples",
"ext/refcounting","tutorial","ext/tutorial","ext/extlinks",
"ext/coverage","ext/graphviz","ext/autosummary"]})
Search.setIndex()という関数に、何やらオブジェクトを渡しています。オブジェクトには、termsとfilenamesというキーがありますね!感の鋭い方は気づかれたかもしれませんが、termsは、キーワードから、指定されたドキュメントのインデックスをマッピングする辞書になっています。filenamesが、そのIDに該当する、ファイル名の一覧です。SphinxのHTMLフォームで検索をかけると、そのキーワードから、そのキーワードが含まれるドキュメントのIDを見つけて、そのページを表示する、という仕掛けです。実際には、単語はもっと大量にありますし、単語以外にもtitlesや、objnamesといった、グループで、単語とドキュメントIDへのマッピングが何種類か登録されています。
もうちょっと詳しい検索の流れは次の通りです。
1. 検索キーワードのステミング処理をかける
例えば、 books と入れました。本の複数形です。ステミング処理というのは、現在形など、辞書に載っている形式に戻す処理です。辞書には特殊な単語意外は複数形では載っていませんよね?ここではbookに変わります。ちなみに、Sphinxがオフラインで作成したインデックスのsearchindex.jsにも、ステミングされた処理が入っています。つまり、原文がbooksで、検索ワードがbookでも、両方ともステミングされた後の状態で比較されるため、マッチします。
ちなみにこのステミングアルゴリズムは「ポーターステマー」という名前のアルゴリズムが使われていますが、ここの処理は結構重い処理らしく、Pythonのドキュメント1つ分をまるごとビルドすると、ここがボトルネックになってしまいます。エキスパートPythonプログラミングを一緒に翻訳した稲田さんが、ここのパッチをSphinxに送って組み込まれているのですが、現在では、もしポーターステマーのC言語の拡張モジュールがあれば、高速化のためにそれを呼ぶようになっています。
2. searchindex.jsを検索する
辞書が入っていますので、ステミングした単語を入れて検索します。このbookが含まれているドキュメントのID一覧がゲットできました。ドキュメントIDがゲットできたら、今度は実際のファイル名を調べます。
3. source/XXX.txtを調べる
目的の単語が入っているファイルが分かりました。次に、このドキュメントのソースのreSTファイルを調べに行きます。SphinxはHTMLを見るときに「ソースを見る」で、ビルドしたソースのreSTファイルが読めるようになっています。検索の詳細表示では、このファイルを利用するようになっています。このソースコードを読み込み、目的の単語を探し、その前後のテキストをくりぬいてきて、検索したファイル情報と一緒にユーザに表示します。見た目はこんな感じになります。
これらは全部JavaScriptで記述されており、クライアントのブラウザ上で検索機能が動作しています。ちょっと検索とかやったことがある方は、これだけでもビックリですよね?
検索機能をパワーアップしてみる
さてさて、単にSphinxの実装の紹介では、バリカンで襲われてしまう恐れがあるので、ちょっと手を加えてみます。文章の重要度が高いほど、上位に表示されるようにしてみます。
検索のランクを計算する方法は色々あります。表題に使われた場合には重みを増やすとか、多くのページからリンクされたら、などなど。とりあえず、今回は簡単な方法として、たくさん単語が表示されているページほどランクが高くなる、というルールを設定します。
まずはsphinx/search.pyを見てみましょう。HTMLにビルドすると、IndexBuilderクラスのfeedメソッドが呼ばれ、単語が登録されていきます。今までは単なるドキュメントのリストだったのを、単語数の重み情報つきの情報にしなければなりません。
# 変更前。feedの内部関数のadd_term。
def add_term(word, stem=self._stemmer.stem):
word = stem(word)
if len(word) < 3 or word in stopwords or word.isdigit():
return
self._mapping.setdefault(word, set()).add(filename)
self._mappingというのが、単語をキーにして、ファイル名のセット型を値に持つ辞書になっているようです。重要度を保持するということで、単語の出現回数を保持したいと思います。そこで、セット型の代わりに辞書型を持たせて、カウンタとします。
# 変更後。feedの内部関数のadd_term。
def add_term(word, stem=self._stemmer.stem):
word = stem(word)
if len(word) < 3 or word in stopwords or word.isdigit():
return
files = self._mapping.setdefault(word, {})
files[filename] = files.get(filename, 0) + 1
次に、出力部をいじります。freeze()メソッドの結果が、JavaScriptのコードに埋め込まれますが、この中で、get_terms()メソッドを呼び出し、単語とドキュメントIDの辞書を出力しています。
# 変更前
def get_terms(self, fn2index):
rv = {}
for k, v in self._mapping.iteritems():
if len(v) == 1:
fn, = v
if fn in fn2index:
rv[k] = fn2index[fn]
else:
rv[k] = [fn2index[fn] for fn in v if fn in fn2index]
return rv
forループの行を書き換えます。本来はセット型だったのですが、今は辞書が入っています。これを単語出現数でソートして、キーだけの配列を生成するようにしました。試しに、この周辺にprint文でも仕込んでみると、動きが良く観察できるでしょう。
for k, v_with_rank in self._mapping.iteritems():
sorted_v = sorted(v_with_rank.items(), key=lambda i: -i[1])
v = [i[0] for i in sorted_v]
さて、make htmlしてみると・・・エラーが出ました。Sphinxは複数のソースをまとめてビルドしますが、余計なファイルを削除するコードがあり、現在のドキュメントのsetと積集合をとることでゴミを削除しています。ただ、このメソッドはセット型のメソッドで、辞書にはないので、なんとなく動きをエミュレートします。
def prune(self, filenames):
"""Remove data for all filenames not in the list."""
new_titles = {}
for filename in filenames:
if filename in self._titles:
new_titles[filename] = self._titles[filename]
self._titles = new_titles
for wordnames in self._mapping.itervalues():
# 変更前はこの一行
# wordnames.intersection_update(filenames)
for filename, rank in list(wordnames.iteritems()):
if filename not in filenames:
del wordnames[filename]
とりあえず、一番最初にあげたサンプルでは、prefixという単語がいっぱい使われているようです。実際にこのコードを走らせて、prefixという単語の出現数とファイル名のペアの配列を表示してみると、次のような感じです。
prefix [('domains', 8), ('ext/extlinks', 7), ('ext/intersphinx', 2), ('markup/inline', 2), ('templating', 2), ('markup/toctree', 1), ('ext/tutorial', 1), ('changes', 1), ('ext/appapi', 1), ('ext/inheritance', 1), ('config', 1), ('tutorial', 1)]
domainsという所にいっぱいあるみたいですね。ノーマル状態のSphinxで検索をかけてみると、changes、ext/appapi, tutorialという順番に表示されます。ここで、手を加えたエンジンを使って検索をかけてみると・・・・
緊急事態発生
あれ?ノーマルのSphinxと同じ順序で表示される(汗・・・現在23:53。調査突入・・・あ、日付変更線が頭を越えた。
その後、調査した結果、JavaScript側で、ファイル名でソートをかけている、ということが判明。敵はJavaScriptにあり。ということでごにょごにょ修正した結果は↓ここに置いておきます。JavaScript側の修正と、それ以外の修正のdiffはまとめてこちらに掲示しましたので、参照してください。
簡単に書くと、検索結果のファイル一覧を辞書に格納しているので、キーの順番を保持する配列を用意(351行目のfileMapKey)して、検索時の単語数順の配列の順序を保持するようにしたのと、ファイル名でのソートの行を消しました。これで、希望通りの順番で表示されるようになりました。一時間のタイムロス・・・すみませんすみません。
今後の遊び方
さて、トラブルはありましたが、検索機能のハックが完了しました。登場単語の多い順で検索ができるようになりました。ブラウザで検索するため、インデックスが巨大になってしまうn-gram方式はSphinxではちょっと難しかったり、さまざまな制約はあります。ですが、今回みたいにインデックスされる順番を工夫することで検索の性能を上げることができます。集合知プログラミングを読んだけど、検索インデックス作る材料がないなぁ、という人は、ぜひSphinxの検索機能をネタにハックしてみてください。
例えば、多くのページから参照されている場合にはランクを上げる(ページランク)、同じ単語が集中的に表示されるパラグラフのスコアを上げるなど、少ないデータながら、工夫のしがいはあります。また、同じようなページベクトルを持つ単語は類似の単語として、ユーザにリコメンドしたりできるする余地もあります。
Sphinxは文章を書くツールとしても優秀ですが、文章情報をプログラム的にさまざまに加工する、文書プロセッサとしても利用可能です。今後はこのあたりのノウハウも増やしていきたいと思います。
え?どこがウェブのフレームワークだって?
SphinxはHTMLが生成できて、ブラウザ側で検索もできちゃうんですよ。静的ファイルだけを配布するサーバを用意すればそれでOK。パフォーマンスなんてそんなにいらないです。なんか、CO2を25%減らすとか外に約束してしまった政治家の先生とかいるし、SphinxをCMSとして使ってCO2削減!と売り込めないかなぁ、と画策中。ストレージが全部メモリで、CPUがARMとかで、静的ファイル配信専用のウェブサーバーとかってないんですかね?
次は@RyoAbeさんにバトンを渡したいと思います。

moncler http://www.monclerstore.jp
モンクレール http://www.monclersales.jp
moncler http://www.moncler.ne.jp
ミュウミュウ http://www.miumiu.ne.jp
モンクレール http://www.moncler.ne.jp
モンクレール http://www.monclerstore.jp
モンクレール http://www.monclershop.jp
http://www.goodlv.org
歓迎客たちに感謝の気持ちを込めて、販促活動を行って大きい。
4月9日から5月9日まで、全ての商品を闭めた35 %だった。
(特別品以外のホームページhttp://www.goodlv.org
詳しいことは私たちのサイトで见てくださいぜひお願いします。
毎日大量の新作入荷!!
ご愛顧だった。
http://www.goodlv.org
よろしくお愿いします。
本店のurl: http://www.goodlv.org/
電子メールのアドレス:sales@goodlv.org
紅蜘蛛:http://www.001kanpo.com/product/228.html
花痴:http://www.001kanpo.com/product/237.html
蟻力神:http://www.001kanpo.com/product/26.html
天天素:http://www.001kanpo.com/product/17.html
SPANISCHE FLIEGE:http://www.001kanpo.com/product/236.html
Wenickman:http://www.001kanpo.com/product/30.html
男宝:http://www.001kanpo.com/product/409.html
SEX DROPS:http://www.001kanpo.com/product/284.html
威哥王: http://www.kanpoucom.com/i/VigorWang.html
天天素: http://www.kanpoucom.com/i/tentenso.html
ru486: http://www.kanpoucom.com/i/ru486.html
避妊薬: http://www.kanpoucom.com/i/huitingbiyun.html
三体牛鞭: http://www.kanpocom.com/Pro/stlb.html
九鞭粒: http://www.kanpocom.com/Pro/jiubianli.html
V26: http://www.kanpocom.com/Pro/V26sx.html
日本秀身堂: http://www.kanpocom.com/Pro/xouzhentang.htm
五便宝: http://www.kanpoucom.com/product/157.html
キョジンバイゾウ: http://www.kanpoucom.com/product/138.html
SPANISCHE FLIEGE: http://www.kanpoucom.com/product/308.html
催淫通販: http://www.kanpoucom.com/product/296.html
精力剤の概要:http://www.e-909.com/archives/category/seiryoku/
ティファニー アトラス:http://www.tiffanytojp.com/c-36-b0.html
ティファニー 1837:http://www.tiffanytojp.com/c-29-b0.html
ティファニー リング:http://www.tiffanytojp.com/c-84-b0.html
ティファニー ネックレス:http://www.tiffanytojp.com/c-83-b0.html
ティファニー アトラス:http://www.tiffanytojp.com/c-36-b0.html
ティファニー 1837:http://www.tiffanytojp.com/c-29-b0.html
ティファニー リング:http://www.tiffanytojp.com/c-84-b0.html
ティファニー クロス:http://www.tiffanytojp.com/c-42-b0.html
ティファニー ブレスレット:http://www.tiffanytojp.com/c-82-b0.html
ティファニー コレクション:http://www.tiffanytojp.com/c-30-b0.html
抱き枕 アニメ:http://www.animetojapan.com/category-1-b0.html
angel beats 抱き枕:http://www.animetojapan.com/category-7-b0.html
抱き枕 東方:http://www.animetojapan.com/goods-394.html
けいおん 抱き枕:http://www.animetojapan.com/category-3-b0.html
なのは 抱き枕:http://www.animetojapan.com/goods-37.html
東方 抱き枕:http://www.animetojapan.com/category-2-b0.html
UGG 販売 http://www.go-boots.com/
UGG 店舗 http://www.go-boots.com/
UGG 楽天 http://www.go-boots.com/
UGG クラシックミニ http://www.go-boots.com/ugg-classic-mini-boots-store-14.html
UGG キッズ ブーツ http://www.go-boots.com/ugg-kids-boots-store-15.html
媚薬,バイアグラ,シアリス,レビトラ,精力剤の個人輸入代行!
正規品100%保障!お届け100%保障!ご注文いただいた商品は、海外よりお客様のお手元に中身がわからないようにしっかりと
どうぞ安心してご利用くださいませ。
正規品100%保障!お届け100%保障!ご注文いただいた商品は、海外よりお客様のお手元に中身がわからないようにしっかりと梱包してお届けいたします。
ですので、中身が家族などに知られることもありません。さらに、商品名も記載せずにお届けいたしますので、安心です。また、現在、高い効果や低価格などを謳った偽者なども蔓延しておりますが、当店のものは、100%純正品ですので、安全にご購入いただき、納得の効果が得ることができます。
連絡メールアドレス:brandshop9@gmail.com
ホームページー:http://www.kanpou-energy.com
媚薬,バイアグラ
コメント: "紅蜘蛛(液体)は、無色無味の液体で、飲料、酒類にすぐに溶けます。女性が飲用すると
飲用後、数分間で情熱が溢れ出てきて、愛情の欲求が強くなります。
連絡メールアドレス:kanpouenergy@gmail.com
ホームページー:http://www.kanpou-energy.com
絶對高潮カプセル: http://www.86and81.com/Product/260.html
紅蜘蛛 液体: http://www.86and81.com/Product/43.html
三体牛鞭: http://www.86and81.com/Product/385.html
西班牙蒼蝿水: http://www.86and81.com/Product/265.html
催情: http://www.86and81.com/Product/66.html
狼1号:http://www.hellokanpo.com/view/langyihao.html
狼一号:http://www.hellokanpo.com/view/langyihao.html
紅蜘蛛 激安:http://www.hellokanpo.com/view/hong-zhi-zhu-meiyao.html
紅蜘蛛 催情粉:http://www.hellokanpo.com/view/hongzhi-zhu4.html
SPANISCHE FLIEGE:http://www.001kanpo.com/product/236.html
Wenickman:http://www.001kanpo.com/product/30.html
男宝:http://www.001kanpo.com/product/409.html
九鞭粒:http://www.001kanpo.com/product/410.html
WENICKMAN:http://www.001kanpo.com/product/30.html
魔根:http://www.001kanpo.com/product/73.html
威哥王:http://www.001kanpo.com/product/55.html
紅蜘蛛:http://www.001kanpo.com/product/228.html
紅蜘蛛 液体:http://www.001kanpo.com/product/43.html
美国 仏裸蒙:http://www.001kanpo.com/product/418.html
威哥王: http://www.86and81.com/product/55.html
曲美: http://www.86and81.com/Product/189.html
レビトラ: http://www.86and81.com/Product/21.html
花痴: http://www.86and81.com/product/393.html
satibo online:http://www.naturalpills2u.com/satibo.html
Wodibo:http://www.naturalpills2u.com/wodibocapsule.html
sex medicine:http://www.naturalpills2u.com/
vigrx:http://www.naturalpills2u.com/vigrx.html
woman:http://www.specialitybrand.com/category/60.html
satibo online:http://www.specialitybrand.com/tags/satibo-capsule.html
Mojo Warrior:http://www.specialitybrand.com/product/mojowarrior.html
Satibo:http://www.specialitybrand.com/product/satibo.html
sex medicine:http://specialitybrand.com/
靴 紳士 http://www.ninkishop.co/16--
靴 スニーカー http://www.ninkishop.co/21-sports-shoes
威哥王:http://www.akanpou.com/akanpou-78.html
紅蜘蛛:http://www.akanpou.com/akanpou-155.html
花痴:http://www.akanpou.com/akanpou-166.html
曲美:http://www.akanpou.com/akanpou-454.html
三便宝:http://www.akanpou.com/akanpou-5.html
http://www.shoeslouboutinshoes.net/ クリスチャンルブタン 通販
http://www.shoeslouboutinshoes.net/ ルブタン 靴
http://www.shoeslouboutinshoes.net/sandals-louboutin-good-122.html ルブタン サンダル
http://www.shoeslouboutinshoes.net/mens-louboutin-good-140.html クリスチャン ルブタン メンズ
http://www.shoeslouboutinshoes.net/sneakers-louboutin-good-142.html ルブタン スニーカー
http://www.shoeslouboutinshoes.net/high-heels-louboutin-good-121.html ルブタン パンプス
http://www.shoeslouboutinshoes.net/boots-louboutin-good-153.html クリスチャンルブタン ブーツ
http://www.moncler-down-japan.com
ました。モンクレール レディースコートはとても品質が良くて、糸の密度に依存しています。だから、
先にこのブランドを購入するのに十分得ではないでしょうか?今寒い冬が近づいています。モンクレール
は冬の時に不可欠なものです。衣類のモンクレールのこのタイプは、世界のモンクレールの豪華さ、快適
さとモードに同時に存在する機会を与えなければならないです。一般にこの降雪のような状況の下、多く
の人々は彼らが"ローリングボール"のように見えるように、通常の体温を、維持するために、重い、重い
オーバーコートを着用する必要があります。
http://www.moncler-down-japan.com/モンクレール-レディースコート-c-6.html
シューズ メンズ http://www.ninkishop.co/6-men-shoes
レディース 靴 http://www.ninkishop.co/7-women-shoes
パンプス http://www.ninkishop.co/17--
靴 紳士 http://www.ninkishop.co/16--
ウェッジソール http://www.ninkishop.co/20--
ジャケット、世界中で非常に人気があります。
http://www.moncler-down-japan.com/モンクレール-レディースコート-c-6.html
女性用媚薬:http://www.superkanpo.com/jyosei/index.html
精力剤:http://www.superkanpo.com/energy/index.html
性欲剤:http://www.superkanpo.com/energy/10.html
三鞭粒:http://www.superkanpo.com/product/119.html
男根増長素:http://www.superkanpo.com/product/117.html
九鞭粒:http://www.superkanpo.com/product/116.html
虎力士:http://www.superkanpo.com/product/115.html
女性用媚薬:http://www.superkanpo.net/jyosei/index.html
媚薬:http://www.superkanpo.net/jyosei/Philter.html
性欲剤:http://www.superkanpo.net/energy/Sexual-desire-medicine.html
福源春:http://www.superkanpo.net/pro/kp100.html
蟻力神(第五代):http://www.superkanpo.net/pro/kp77.html
御秀堂 養顔痩身カプセル:http://www.superkanpo.net/pro/kp301.html
曲美(Sibutramine):http://www.superkanpo.net/pro/kp300.html
Motivator:http://www.superkanpo.net/pro/kp241.html
性欲剤:http://www.yahoo-kanpo.com/Category/Sexuality-agent.asp
女性用媚薬:http://www.yahoo-kanpo.com/Category/Jyosei.asp
媚薬:http://www.yahoo-kanpo.com/Category/Mei-drug.asp
海狗丸:http://www.yahoo-kanpo.com/product/HongKong-Seal-pill.asp
三便宝 効果:http://www.yahoo-kanpo.com/product/Satibo.asp
三便宝:http://www.yahoo-kanpo.com/product/Satibo.asp
VigRx:http://www.yahoo-kanpo.com/product/VigRx.asp
ブランド品のインターネット販売!
ブランド品 腕時計 飾り物などの買取紹介サイトです!
ヴィトン 、グッチ 、エルメス、 シャネル、コーチ 、ブルガリ、クロエ 、 プラダ 、カルティエ などの9種類が大激売中!
*“信用一”は弊店のサービス趣旨となっております!
*第一時間で最新作を手に入れること!
*商品を発送した後、EMS番号とEMS会社のホームページをご連絡させていただ きます。
*ごほしい物を見つけない場合、弊店を任せて探すことが可能!
*ごほしい商品の情報を提供していただきました後、すぐお探し致します。手 に入れた次第、ご連絡致します。
★ URL: http://www.bluekkk.com/
★ 店長: 赤石聡子
★ 連絡先:info@bluekkk.com
ブランド品のインターネット販売!
ブランド品 腕時計 飾り物などの買取紹介サイトです!
ヴィトン 、グッチ 、エルメス、 シャネル、コーチ 、ブルガリ、クロエ 、 プラダ 、カルティエ などの9種類が大激売中!
*“信用一”は弊店のサービス趣旨となっております!
*第一時間で最新作を手に入れること!
*商品を発送した後、EMS番号とEMS会社のホームページをご連絡させていただ きます。
*ごほしい物を見つけない場合、弊店を任せて探すことが可能!
*ごほしい商品の情報を提供していただきました後、すぐお探し致します。手 に入れた次第、ご連絡致します。
★ URL: http://www.watch-n.com/
★ 店長: 岡田 一郎
★ 連絡先:info@watch-n.com
本田芽衣
超人気質屋【copytojp.com】
★最高等級財布大量入荷!
▽◆▽世界の一流ブランド品N級の専門ショップcopytojp.com★
注文特恵中-新作入荷!-価格比較.送料無料!
◆主要取扱商品バッグ、財布!
◆全国送料一律無料
◆オークション、楽天オークション、売店、卸売りと小売りの第一選択のブランドの店。
■信用第一、良い品質、低価格は 私達の勝ち残りの切り札です。
◆ 当社の商品は絶対の自信が御座います。
おすすめ人気ブランド腕時計,最高等級時計大量入荷!
◆N品質シリアル付きも有り 付属品完備!
☆★☆━━━━━━━━━━━━━━━━━━━☆★☆
以上 宜しくお願い致します。
★URL:http://www.copytojp.com/
★店長:本田芽衣
★連絡先:sales@copytojp.com
セールブランド激安店
ブランド品のインターネット販売!
ブランド品 腕時計 飾り物などの買取紹介サイトです!
ヴィトン 、グッチ 、エルメス、 シャネル、コーチ 、ブルガリ、クロエ 、 プラダ 、カルティエ などの9種類が大激売中!
*“信用一”は弊店のサービス趣旨となっております!
*第一時間で最新作を手に入れること!
*商品を発送した後、EMS番号とEMS会社のホームページをご連絡させていただ きます。
*ごほしい物を見つけない場合、弊店を任せて探すことが可能!
*ごほしい商品の情報を提供していただきました後、すぐお探し致します。手 に入れた次第、ご連絡致します。
★ URL: http://www.lovinglv.com/
★ 店長:坂上 村
★ 連絡先:sales@lovinglv.com
★2012年最高財布等級時計大量入荷超人気!!!★
超人気のブランド店→http://www.n-saifu.com/←実物写真ブランド店
■2012年の超人気ブランド新品■
┏━━━━豪華贅沢品━━━━┓
◎━バッグ :ブラダ、イースト、アウトドア、コーチ、ディーゼル
◎━財 布:カルティエ、ブルガリ、グッチ、ブラダ、コーチ
◎━時 計:ロレックス、パネライ、シャネル
■◎━━◎低価格 低価格◎━━◎■
■◎━━◎年末引割り◎━━◎ ■
☆●●●●●運賃無料実施中●●●●●☆
*----*━━━━━━━━━━━━━━━━━━━━*----*
┃超人気新作N品登場☆注文を期待:http://www.n-saifu.com/
*----*━━━━━━━━━━━━━━━━━━━━*----*
┓┏┓┏┓
┻┗┛┗┛%品質保証 満足保障。
信用第一、高品質 安心 最低価格保証
■担当者:上田
当社URL:http://www.n-saifu.com/
連絡先:info@n-saifu.com