2010-11-19 7 views
1

newegg.comにアクセスすると(1つの例)、商品を閲覧しているときに商品の属性の横にある商品の数を確認できます左サイドバー。neweggのようなすべての商品属性/フィルタの合計数を取得する方法

いくつかのアイテムに非常に多くの属性があり、さまざまな構成の製品フィルタを使用すると、それらの合計をどのようにすばやく計算するのでしょうか? newegg.comについては

答えて

2

は、彼らは一言で言えばendeca

が提供するファセットナビゲーション技術を使用している、endecaが実際にXML/CSV形式で提供されたデータを使用するか、直接、任意のデータベースからデータを取得します(ただのmysqlに限定されません)と

Endecaは、あなたが、彼らは彼らが速く計算することを知らないようsphinxlucene solr

+0

回答ありがとうございます。私は彼らがデータベースに直接質問していないと考えました。以前はスフィンクスを使っていましたが、リクエストごとにendeca 100(任意の見積もり)時間を問い合わせることなく、スフィンクスがどうやってそれを行うのかまだ分かりません。私は何が欠けていますか? –

+0

Sphinxはファセット検索の面ではフルテキストで高速ですが、可能ですがより多くの設定とテストが必要です。あなたはおそらくmysqlのGROUPであるすべての面を扱うことができますし、スフィンクスは非常に速くそれを行います。 – ajreal

+0

私はあなたを正しく理解していれば、すべての属性セットでGROUP BYを実行し、集計関数を使用して各属性内の製品数を取得します。 –

0

などのオープンソースの代替無料ではない、独自の形式に類似し、グループの結果を計算します。あなたはそれらを速くレンダリングすることを知っているだけです。これらの合計を計算してページをレンダリングしたり、結果をキャッシュしたり、データをリフレッシュしたいときまでスタティックファイルを提供したりすることができます。

+0

私はそれを買うだろうし、それは非常にうまくいくかもしれないが、magentoは同じ機能を持っているので、リアルタイムで(または少なくともキャッシュされた時点のリアルタイムで)起こっていると仮定した。 –

+0

残念なことに、彼らはendecaへのライブクエリーを実行します。繰り返しますが、endecaは無料ではありません。 – ajreal

+0

それはポイントの横にある。 Neweggは単なる一例でした。 Endecaを買うだけで何か複雑なものを高速にレンダリングする唯一の方法ではないことを指摘しています。ゆっくりと計算して結果をキャッシュすることができます。 –

1

NeweggはEndecaを使用しており、おそらくEndecaの以前の顧客の1つでした。振り返ると、Endecaは成功への大きな貢献者でした。面取りされたナビゲーションは、コンピュータ部品のような複雑なエレクトロニクスで非常にうまく機能します。

ファセットナビゲーションに考慮すべき点がいくつかあります:

1)あなたは、カテゴリ・ドリブンクエリにちょうどファセットナビゲーションをしたい、またはあなたはまた、それが検索で仕事をしたいんですか?実際には、カテゴリは階層的な一種です。

2)正規化逆索引モデルのSolrが問題を引き起こしますか?

1)の答えが真であれば - おそらく - 逆向きのインデックスが必要です。逆索引は、キーワード検索を行う唯一の方法です。彼らはまた、いくつかの警告で面取りをするでしょう。

基本的には、各ファセットを逆インデックスと見なすことができます(実際、キーワード検索はランキング機能を備えた特別なファセットと考えられます)。カウントを行うには、/と他のすべてのファセット値と現在のクエリとフィルタを交差させる必要があります。しかし、このモデルは、スパースなプロダクトセット(2を参照)を表現する必要がある場合、問題を引き起こす可能性があります。

2)への答えが真であれば、OLAPの面でファセットについてもっと考えることができます。逆インデックスがいくつかの抽象化なしで複雑な関係を処理できるかどうかはわかりません。

フルテキスト(通常は逆インデックスとして実装されています)やOLAPの組み合わせとして、ファセット検索/ナビを検討して実装することは公正です。

私は、あなたがコラムストアを使ってファセットを手に入れることができると確信していますが、キーワード検索が必要な場合は、併合する逆インデックスが必要です。

@Danグロスマン:

それはそう見えるかもしれませんが、 -

あなたはファセットのあるどのように多くの組み合わせの瞬間のためだと思いましたか?そんなに多くのページをキャッシュすることはできません。 Neweggにはおそらくより多くの組み合わせがあります。あなたの空の星よりcom。

複数選択で追加するとさらに悪化します。ゲームオーバー。

フィルタリングされていない、一般的にフィルタリングされたようなケースもキャッシュできます。再帰のレベルを制限せずにNewegg.comをスパイダーしようとすると、あなたはクモを殺すでしょう。面倒なサイトは、このような理由で検索エンジン全体に問題を引き起こします。 http://www.searchmarketingstandard.com/facets-navigational-seo-powerhouse-part

+0

優れた修復。ありがとうございました。 –

関連する問題