Как уже упоминалось в вопросе, я пытаюсь использовать функцию группировки результатов Solr, чтобы (удивить) сгруппировать результаты поиска.Из того, что я понимаю, Solrnet 0.3.1 поддерживает свертывание полей, но не работает для Solr, потому что Solr заменил сворачивание полей на группировку результатов в версии 3.3.
Я видел, что Solrnet 0.4.0 alpha поддерживает группировку, однако я неЯ думаю, что это возможно для меня, чтобы использовать это для моего текущего проекта, поскольку это альфа, и мне было бы непросто оправдать это для клиента.Если кто-то не может перечислить несколько достаточно убедительных аргументов в обратном, что альфа будет «небезопасной».
Я также попытался добавить параметры группы, установив ExtraParams следующим образом:
ExtraParams = new Dictionary<string, string>{{"group", "true"}, {"group.field", "fieldName"}}
Это вызывает исключение NullReferenceException:
at SolrNet.Impl.ResponseParsers.ResultsResponseParser`1.Parse(XmlDocument xml, SolrQueryResults`1 results) in c:\prg\SolrNet\svn\SolrNet\Impl\ResponseParsers\ResultsResponseParser.cs:line 35
at SolrNet.Impl.SolrQueryResultParser`1.Parse(String r) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrQueryResultParser.cs:line 46
at SolrNet.Impl.SolrQueryExecuter`1.Execute(ISolrQuery q, QueryOptions options) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrQueryExecuter.cs:line 309
at SolrNet.Impl.SolrBasicServer`1.Query(ISolrQuery query, QueryOptions options) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrBasicServer.cs:line 83
at SolrNet.Impl.SolrServer`1.Query(String q, QueryOptions options) in c:\prg\SolrNet\svn\SolrNet\Impl\SolrServer.cs:line 78
at RSearch.Core.SearchIndex.Search(String term, Int32 page, Int32 pageSize) in D:\Development\LESA-LARIAT\LariatMapper\Core\SearchIndex.cs:line 153
at RSearch.Controllers.SearchController.Index(SearchInfo searchInfo) in D:\Development\LESA-LARIAT\LariatWeb\Controllers\SearchController.cs:line 16
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.
<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
Я предполагаю, почему это происходит, потому что Solrnet не понимает структуру результатов, переданных ему обратно, поэтому он выдает это исключение.
Я бы действительнохотелось бы сделать это, так как я чувствую, что использовать Solrnet для использования всех возможностей Solr немного «грязно», но группировка выполняется через LINQ после возврата запроса.Если это мой единственный вариант, я не возражаю против его использования.
Спасибо за вашу помощь.