Domanda

Sto scrivendo un FullTextSqlQuery e vorrei tornare tutte le colonne disponibili nel set di risultati.

Quando ho specificare le colonne, ad esempio, SELECT Title FROM scope() WHERE ("scope" = 'All Sites'), la query funziona bene.

Quando si tenta di selezionare tutte le colonne, ad esempio, SELECT * FROM scope() WHERE ("scope" = 'All Sites'), un QueryMalformedException è sollevata.

Il codice per l'esecuzione della query è:

var sqlQuery = new FullTextSqlQuery(SPContext.Current.Site)
{
    ResultTypes = ResultType.RelevantResults,
    QueryText = searchQuery
};
var collectionOfResults = sqlQuery.Execute();

E 'possibile recuperare tutte le colonne disponibili, o c'è una soluzione?

È stato utile?

Soluzione

Per quanto ne so si deve ricordare in particolare le colonne che si desidera.

Nella query SQL, v'è permesso di utilizzare l'asterisco (*) per specificare che tutte le colonne di una tabella devono essere restituiti. Tuttavia, nessun insieme di proprietà definita e fissa si applica a tutti i documenti. Per questo motivo, l'asterisco SQL non è consentito nell'impostazione [colonne].

http://msdn.microsoft.com/en-us/library/ ms569178.aspx

Altri suggerimenti

FullTextSqlQuery utilizza una sintassi SQL-like, ma in realtà non è SQL. La dichiarazione query viene analizzato internamente da SharePoint e usato per interrogare i file di indice piatte generati dal crawler sul file system, così come per generare query SQL reali che possono essere eseguite sul database di ricerca.

È pertanto non è possibile utilizzare '*', e sono limitati a specificare le proprietà solo gestite nell'istruzione select. Queste proprietà possono essere definite nelle impostazioni del provider di servizi condivisi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top