1

私たちは、ASP.NET MVC3(C#) に基づく大規模な e コマース サイトに取り組んでいます。より良い検索結果のために Solr を実装する予定です。

サイトには「最も人気のある商品」という名前の機能があります。名前が示すように、顧客が特定の商品を閲覧した回数に基づいて、サイトで最も人気のある商品を表示します。

商品詳細ページや商品一覧ページでは、一番人気の商品であることを示すユニークなアイコン(一番人気アイコン)をつけて区別しています。

ここでの問題は、製品がsolrインデックスで最も人気があると識別するフラグまたはステータスをどのように更新できるかということです. またはこの機能をsolrとどのように関連付けることができますか?

注: この機能を実現するために、solr インデックス全体を更新するのは非常にコストがかかります。

4

2 に答える 2

2

いくつかの提案を考えることができます。もっとあるかもしれません。

  1. 最も人気のある製品 (知っている製品と、人気があると思われる製品) を別の Solr シャードに配置します。このコアは、他のコアよりもはるかに小さくする必要があります。これにより、インデックスの更新とコミットが高速になります。

  2. 4.0 Near Real Time Searchには solr 機能があります。. この機能は、上記のコア (またはインデックス全体) で使用できます。この機能にはsolr 4.0が必要です

  3. Solr 4.0 をまだ使用できない場合は、「ライブ」コアと「オンデッキ」コアを用意してください。デッキ上のコアを新しいフラグ/ステータスで更新します。この新しいデータがコミットされたら、オンデッキをライブ コアと交換します。現在「ライブ」のコアでの新しい検索には、新しいデータがあります。繰り返す。

  4. インデックス コアが頻繁に変更される場合は、検索ウォーミング クエリを無効にするか減らします。

于 2012-07-12T14:24:28.373 に答える
2

製品の人気データを保存するには、 ExternalFileFieldを使用します (3.6 でも利用可能です)。これにより、インデックスを再作成する必要なく、そのフィールドを更新できます。

于 2012-07-12T16:07:59.947 に答える