1

Solr、SolrNet、およびasp.net MCV 3で構築された製品カテゴリアプリにファセットを実装しようとしています。これまでのところ、すべての製品結果を一覧表示できましたが、ファセットは一覧表示できませんでした。以下に示すようにファセットを印刷できました。

<ul>
    @foreach (var facet in Model.Products.FacetFields["brand"])
    {
      <li>@facet.Key (@facet.Value)</li>
    }
</ul>

上記のコードには2つの問題があります。

1)検索結果にブランドのファセットが含まれていない場合、このエラーがスローされます。指定されたキーが辞書に存在しませんでした。

System.Collections.Generic.KeyNotFoundException:指定されたキーがディクショナリに存在しませんでした。System.Collections.Generic.Dictionaryで

2)ファセットキーと値をリンクとして表示する必要があります。したがって、そのファセットをクリックすると、ファセットの製品を一覧表示できるはずです。

これがschema.xmlです。上記の質問に対する答えを知っている場合は、私を助けてください。

<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="string" indexed="true" stored="true"/>
<field name="brand" type="string" indexed="true" stored="true"/>
<field name="brand_id" type="string" indexed="true" stored="true"/>
<field name="categories" type="string" multiValued="true" indexed="true" stored="true"/>
4

1 に答える 1

1

1)検索結果にブランドのファセットが含まれていない場合、このエラーがスローされます。指定されたキーが辞書に存在しませんでした。

そのフィールドでファセットフィールドクエリを実行していない場合は、結果でそれを要求しないでください。

2)ファセットキーと値をリンクとして表示する必要があります。したがって、そのファセットをクリックすると、ファセットの製品を一覧表示できるはずです。

基本的に、クリックされたファセット値をフィルタークエリに変換する必要があります。特定のアプリケーションのニーズに応じて、これを実装する方法はたくさんあります。そのための1つの方法については、 SolrNetサンプルアプリを参照してください。そのソースコードをガイダンスとして使用してください。

于 2011-04-23T23:08:49.497 に答える