E 'possibile fare Campo Crollare / Raggruppamento con Solrnet 0.3.1 e 3.3 SORL

StackOverflow https://stackoverflow.com/questions/8305187

  •  25-10-2019
  •  | 
  •  

Domanda

Come indicato nella domanda che sto cercando di utilizzare il risultato di Solr funzione di raggruppamento a (sorpresa) gruppo I miei risultati della ricerca. Da quello che ho capito Solrnet campo 0.3.1 supporti collasso, ma è spezzato per Solr Solr perché sostituito campo collasso con risultati raggruppandoli in versione 3.3.

ho visto che Solrnet supporti 0.4.0 alpha raggruppamento però non credo sia possibile per me di utilizzare tale per il mio progetto attuale è alfa e avrei avuto un momento difficile giustificare al cliente. A meno che qualcuno può elencare alcuni argomenti abbastanza convincenti per il contrario, che un alfa sarebbe 'non sicuro'.

Inoltre ho provato ad aggiungere i parametri del gruppo impostando i ExtraParams in questo modo:

 ExtraParams = new Dictionary<string, string>{{"group", "true"}, {"group.field", "fieldName"}}

Questo getta una 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)

La mia ipotesi al motivo per cui lo fa è Solrnet non capisce la struttura dei risultati passò di nuovo esso in modo che genera questa eccezione.

Mi piacerebbe davvero essere in grado di fare questo, come sento che è un po 'sporca' di utilizzare Solrnet per sfruttare tutte le funzionalità di Solr, ma hanno il raggruppamento fatto tramite LINQ dopo che la query viene restituito. Se è la mia unica opzione non mi dispiace usandolo però.

Grazie per il vostro aiuto.

È stato utile?

Soluzione

In breve: no, non c'è modo con quella combo di Solr / SolrNet versioni. SolrNet 0.3.1 campo implementato crollare per una nightly build di Solr, quando ha appena iniziato campo crollare attuazione (non è stato chiamato 'raggruppamento' allora). Dopo di che, campo collassare completamente revisionata nel Solr (ora chiamato 'risultato raggruppamento'), e l'attuazione SolrNet 0.3.1 è stato lasciato obsoleto.

Il supporto per il raggruppamento risultato è stato aggiunto poco dopo e rilasciato con 0.4.0a1.

Consiglio di andare con 0.4.0a1. Non è 'sicuro' come in 'unstable' a tutti:

In questo raggruppamento sul lato client (cioè LINQ) non è davvero un'opzione, come si deve prendere tutte le i documenti per farlo correttamente. E 'come voler a impaginazione + ordinamento sul lato client con un database relazionale.

Si può anche essere in grado di risultato backport raggruppamento al 0.3.1, ma secondo me è davvero inutile e una perdita di tempo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top