2012-03-06 16 views
0

私は、ユーザーが一度見つけたら、3つのレベルまでのサブカテゴリを持つ多くのカテゴリを持つウェブサイト(Entity Framework、MySQL、.net 4、C#各「製品」、探している、例えば、異なる属性を持つことができました。ファセット検索を使用してasp.netで書かれたウェブサイト

「レストラン」は持つことができます。平均的な料理の価格を、 と 利用できるキッズメニュー「ジム」は持つことができます。スイミングプール、パーソナルトレーナーが利用可能

私はC#の初心者です。ライブラリLucene.NETと検索エンジンSolrを使用せずに、少なくともsimliarをファセット検索ソリューションに実装する方法を理解していません。特に、おそらく共有ホスティング環境。誰もがこれらの技術を使用せずに同様の機能を実装し、DB構造とコードサンプルについていくつかのアイデアを持ってしようとした場合

ワンダー...また、私は誰にもいくつかの格安VPSホスティングを知っているのLuceneとSolrのを使用する必要があります

ましたSolrのインストールと使用を許可しています。また、見つけられなかったようなファセット検索を作成する方法をいくつかチュートリアルに投げかけるかもしれません。

おかげ

+0

@Xodarap:いいえ、OPは[リレーショナルデータベースにおけるファセット検索の効率的な実装]のSolrのか、Luceneの –

+0

が重複する可能性を使用する必要はありません(http://stackoverflow.com/questions/1847909/efficient-implementation- of-faceted-in-relational-databases) –

答えて

1

としてはthis questionに説明し、リレーショナルデータベースは、効率的にファセッティング実装することはできません。 Lucene.NETはインプロセスで実行されるため、共有ホスティング環境では問題にならないはずです。または、hosted search solutionsを調べることもできます。

+0

ファセット検索をC#で実装する方法を知りたければ、 "効率的に"行うことはできないという標準的な回答ではありません。リレーショナルDBの製品エントリーを読んで、メモリ内の属性をキャッシュすることはできません。このメモリ配列を使ってC#を使って各ファセットの数を調べるよりもですか?これは "不可能"(フランス語ではない)という "この質問"を繰り返すよりもはるかに優れています。 –

0

には、いずれもの深さを効率よく実装できます。 BooksBooks>Non-FictionおよびBooks>Non-Fiction>Dietのファセット検索を実装することは簡単です。階層的ファセットの質問:Ways to do hierarchial faceting in Solr?を参照してください。


ダイナミックフィールドは、エンティティに属性を追加するためのフレンドです。

<dynamicField name="*_i" type="int" indexed="true" stored="true"/> 
<dynamicField name="*_s" type="string" indexed="true" stored="true"/> 
<dynamicField name="*_t" type="text" indexed="true" stored="true"/> 
//you may need a multi-valued string type if you want faceting 

だからあなたは、単に文書を追加することができschema.xmlを変更します。

restaurant_average_dish_price_i: 123 
restaurant_kids_menu_available_s:"yes" 

最初のフィールドは比較操作の準備ができてint、なり、第二には、ファセットの準備ができて、文字列、となります。展開オプションについては

http://www.tnrglobal.com/blog/2010/07/dynamic-fields-in-apache-solr/

http://wiki.apache.org/solr/SchemaXml#Dynamic_fields


、マウリシオ・シェファーの答えに従ってください。

関連する問題