2

私はsolrnetを使用してasp.net上に構築された製品カタログにSolrを使用していますが、これまでのところすべてがうまく機能しています。グループ化オプションを追加して、検索結果を拡張する必要があります。

まず、スキーマがどのように見えるかを説明します。

 <field name="product_id" type="string" indexed="true" stored="true" required="true" /> 
 <field name="name" type="string" indexed="true" stored="true"/>
 <field name="merchant" type="string" indexed="true" stored="true"/>
 <field name="merchant_id" type="int" indexed="false" stored="true"/>
 <field name="merchant_logo" type="string" indexed="false" stored="true"/>
 <field name="brand" type="string" indexed="true" stored="true"/>
 <field name="brand_id" type="int" indexed="false" stored="true"/>
 <field name="group_id" type="int" indexed="true" stored="true"/>
 <field name="group_name" type="string" indexed="true" stored="true"/>
 <field name="has_group" type="boolean" indexed="true" stored="true"/>

上記の製品には「group_id」と「グループ名」があり、スキーマには「グループを持つ」という名前のブールフラグがあります。

製品実績の一例をご紹介します

Product A – group id 1 - group Name 1 – has group true
Product B – group id 1 - group Name 1 – has group true
Product C – group id 2 - group Name 2 – has group true
Product D – group id 2 - group Name 2 – has group true
Product E – has group false
Product F – has group false

しかし、これらの結果を表示するときは、そのグループ名による結果の上にグループ名 (または ID) を持つ製品を表示する必要があります。また、グループに属さない商品は、グループの直後に掲載されます。

したがって、私の結果は次のようになります。

Group Name 1
Group Name 2
Product E
Product F

実際、ページネーションも実装する必要があります。つまり、誰かが製品を検索するときに、製品にグループ名が含まれている場合、それらを結果の上にリストし、他の製品の次にリストします。

これは可能ですか?可能であれば、私は何をする必要がありますか。私はすでに solr で FieldCollapsing について読んでいますが、これが正しい方法であるかどうかはまだわかりませんhttp://wiki.apache.org/solr/FieldCollapsing

4

1 に答える 1

0

はい、インデックス全体をグループ化する場合は、フィールドの折りたたみ機能が必要です。これに対する SolrNet のサポートは、現在、Solr の未リリースの機能であり、SolrNet の最初の実装から大幅に変更されているため、壊れています。詳細と更新については、http://code.google.com/p/solrnet/issues/detail?id=127を参照してください。

于 2011-05-01T21:12:29.217 に答える