2016-10-26 8 views
0

私はLuceneを使用して、eコマースアプリケーションの製品カタログの索引付け/検索を行っています。Luceneで電子商取引を検索する - 各カテゴリの製品を注文する

製品は任意の数のカテゴリにマップできます。

各カテゴリの商品リストのデフォルトの並べ替え順序を維持する必要があります。したがって、製品は、マップされたカテゴリーごとに異なる索引索引を持つことがあります。

カテゴリの商品リストを検索するときに、デフォルトの並べ替え順にマップされた商品を並べ替えるにはどうすればよいですか?

答えて

0

ソート順ごとに別々のフィールド(たとえば、category_motherboards_sort)をそのドキュメントのインデックス値とすることで実装できます。ここでの唯一の問題は、並べ替えたフィールドの総数に注意しなければならないことです。しばらくすると非常に大きなFieldCacheが得られるかもしれませんが、正確にどのように動作するかは、Luceneのバージョン、再使用します。 DocValuesを使用すると、そのコストのほとんどが軽減されます。

それでも問題が解決しない場合は、通常、カテゴリのすべてのドキュメントを取得して解決し、代わりにアプリケーションレイヤーでソートします。これは、フィールドが文書の総数の低い割合でしか存在しない非常にまばらなフィールドで効果的です。

私は最初にオプションを試し、必要に応じて他のオプションを実装する前にメモリ使用量をプロファイルします。

関連する問題