SolrNet огранка asp.net MVC 3 - PullRequest
       3

SolrNet огранка asp.net MVC 3

1 голос
/ 24 апреля 2011

Я пытаюсь внедрить фасетирование в приложение для каталогов продуктов с помощью Solr, SolrNet и его сборки с asp.net MCV 3. До сих пор мне удавалось перечислить все результаты продукта, но не фасетирование. Я мог бы распечатать грани, как показано ниже.

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

У меня две проблемы с кодом выше,

1) Если результаты поиска не содержат фасетов для бренда, выдается эта ошибка Указанный ключ отсутствует в словаре.

System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствовал в толковый словарь. в System.Collections.Generic.Dictionary

2) Мне нужно показать фасетные ключи и значения в виде ссылок. Итак, по щелчку этого фасета я смогу перечислить продукты фасета.

Вот схема.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"/>

1 Ответ

1 голос
/ 24 апреля 2011

1) Если результаты поиска не содержат фасетов для бренда, то выдает эту ошибку. Указанный ключ отсутствует в словаре.

Если вы не выполняете запрос поля фасета в этом поле, просто не запрашивайте его в результатах.

2) Мне нужно показать фасетные ключи и значения в виде ссылок. Итак, по щелчку этого фасета я смогу перечислить продукты фасета.

По сути, вам нужно преобразовать значение фасета, по которому щелкнули, в фильтр запроса . Есть много способов реализовать это в зависимости от ваших конкретных потребностей приложения. См. пример приложения SolrNet , чтобы узнать, как это сделать, используя его исходный код в качестве руководства.

...