Результаты группировки Solr / SolrNet - PullRequest
2 голосов
/ 01 мая 2011

Я использую Solr для каталога продуктов, созданного на asp.net с solrnet, и до сих пор все работает довольно хорошо.Мне нужно расширить результаты поиска, добавив в него некоторые параметры группировки.

Сначала я объясню, как выглядит схема:

 <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» и «group name», также у меня есть логический флагс именем «имеет группу» в моей схеме.

Вот несколько примеров результатов продуктов

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

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

Поэтому мои результаты должны выглядеть следующим образом:

Group Name 1
Group Name 2
Product E
Product F

На самом деле мне нужно реализовать нумерацию страниц какну, другими словами, когда кто-то ищет какой-то продукт, если продукты содержат названия групп, я перечисляю их в верхней части результатов и рядом с другими продуктами.

Возможно ли это вообще?Если это возможно, что мне нужно сделать.Я уже читал о FieldCollapsing в Solr, но до сих пор не знаю, правильный ли это путь или нет http://wiki.apache.org/solr/FieldCollapsing

1 Ответ

0 голосов
/ 02 мая 2011

Да, если вы хотите группировать по всему индексу, вам нужна функция свертывания полей . Поддержка SolrNet для этого в настоящее время не работает, так как это неизданная функция в Solr и сильно изменилась со времени первой реализации в SolrNet. Подробнее см. http://code.google.com/p/solrnet/issues/detail?id=127.

...