Domanda

Io sto usando un FullTextSqlQuery in SharePoint 2007 (MOSS) e la necessità di ordinare i risultati in base a due colonne:

SELECT WorkId FROM SCOPE() ORDER BY Author ASC, Rank DESC

Tuttavia sembra che solo la prima colonna di ORDINE viene preso in considerazione per la restituzione di risultati.In questo caso i risultati sono ordinati correttamente Autore, ma non Rango.Se cambio l'ordine i risultati verranno ordinati per Rango, ma non l'Autore.

Ho dovuto ricorrere al mio proprio ordinamento dei risultati, che non mi piace molto.Qualcuno ha una soluzione a questo?

Modifica:Purtroppo anche non accettare espressioni nella clausola ORDER BY (SharePoint genera un'eccezione).La mia ipotesi è che, anche se la query sembra legittimo SQL viene analizzato in qualche modo prima di essere servito a SQL server.

Ho cercato di prendere la query con SQL Profiler, ma senza alcun risultato.

Edit 2:Alla fine ho usato l'ordinazione da una sola colonna (Autore, nel mio caso, visto che è il più importante) e ha fatto il secondo ordine nel codice in ALTO a N di risultati.Funziona abbastanza buoni per il progetto, ma lascia una brutta sensazione di difettose codice.

È stato utile?

Soluzione

Microsoft infine pubblicato un articolo della knowledge base su questo problema.

"Quando si utilizza RANGO nella clausola ORDER BY di un servizio di Ricerca di SharePoint query, senza altre proprietà deve essere utilizzato."

http://support.microsoft.com/kb/970830

Sintomo:Quando si utilizza RANGO nella clausola ORDER BY di un servizio di Ricerca di SharePoint query solo il primo ORDINE DA colonna viene utilizzata nei risultati.

Causa:RANGO è una proprietà speciale che è classificato in l'indice di testo completo e, pertanto, non può essere utilizzato con altre proprietà gestite.

Risoluzione:Non utilizzare più di una proprietà, in concomitanza con il grado di proprietà.

Altri suggerimenti

Rango è una speciale colonna MOSS FullTextSqlQuery che dare un valore numerico al rango di ogni risultato.Tale valore sarà diverso per ogni query, ed è relativa altri risultati per una determinata query.A causa di questo livello dovrebbe avere un valore univoco per ogni risultato, e l'ordinamento di rango poi autore sarebbe la stessa cosa appena l'ordinamento di rango.Vorrei provare a ordinare su un'altra colonna, invece di rango per vedere se i risultati vengono restituiti come previsto, se è così il tuo problema potrebbe essere legato al modo MOSS è la classifica, i risultati, che variano per ogni query.

Anche tu hai ragione, la query sembra SQL, ma non è la query effettivamente passato a SQL server, è speciale Microsoft Enterprise Search la sintassi della Query SQL.

Anch'io sto avendo lo stesso problema con FullTextSqlQuery e MOSS 2007, dove solo la prima colonna di un multi-colonna "ORDINE" è rispettato.

Ho inserito questo argomento nel Forum di MSDN per la Ricerca di SharePoint, ma non ho ricevuto alcuna risposta:

http://social.msdn.microsoft.com/Forums/en-US/sharepointsearch/thread/489b4f29-4155-4c3b-b493-b2fad687ee56

Non ho esperienza in SharePoint, ma se è il caso in cui solo una clausola ORDER BY viene onorato vorrei cambiare con un espressione piuttosto di una colonna.Supponendo che "Rango" è una colonna numerica con un valore massimo di 10 potrebbe funzionare:

SELECT WorkId FROM SCOPE() ORDER BY AUTHOR + (10 - Rank) ASC
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top