Есть ли способ получить результаты группировки Solr с помощью Solr Net - PullRequest
3 голосов
/ 25 августа 2011

Я хочу попробовать новую развёртку / группировку solr, включённую в solr 3.3, я пробовал запросы на странице администрирования solr, и это работает абсолютно правильно, но когда я пытаюсь выполнить запрос в своем коде c # с использованием solr net, который, кажется, не работает какожидается.Вот как я устанавливаю значения параметров

    options.ExtraParams = new List<KeyValuePair<string, string>>
    {
        new KeyValuePair<string,string>("group","true"),
        new KeyValuePair<string,string>("group.field","AuthorID"),
    };

1 Ответ

5 голосов
/ 25 августа 2011

Да, вы можете использовать группирование (ранее известное как свертывание полей) с SolrNet, оно было представлено в выпуске SolrNet 0.4.0 alpha1. Вот заметки о выпуске в блоге автора о добавлении этой поддержки. Поэтому вам нужно будет получить эту версию (или более позднюю) из Google Code (двоичные файлы) или GitHub (источник). Также вот пример использования группирования из модульных тестов в источнике - Группировка тестов

public void FieldGrouping()
{
    var solr = ServiceLocator.Current.GetInstance<ISolrBasicOperations<Product>>();
    var results = solr.Query(SolrQuery.All, new QueryOptions
    {
        Grouping = new GroupingParameters()
        {
            Fields = new [] { "manu_exact" },
            Format = GroupingFormat.Grouped,
            Limit = 1,
        }
    });

    Console.WriteLine("Group.Count {0}", results.Grouping.Count);
    Assert.AreEqual(1, results.Grouping.Count);
    Assert.AreEqual(true, results.Grouping.ContainsKey("manu_exact"));
    Assert.GreaterThanOrEqualTo(results.Grouping["manu_exact"].Groups.Count,1);
}
...