Frage

Ich schreibe eine FullTextSQLQuery und möchte alle verfügbaren Spalten im Ergebnissatz zurückgeben.

Wenn ich die Spalten angehe, z. B. zB, z. B. SELECT Title FROM scope() WHERE ("scope" = 'All Sites'), Die Abfrage funktioniert einwandfrei.

Wenn ich versuche, alle Spalten auszuwählen, z. B. zB, z. B. SELECT * FROM scope() WHERE ("scope" = 'All Sites'), Eine querymalformeedException wird erhöht.

Der Code für die Abfrageausführung lautet:

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

Ist es möglich, alle verfügbaren Spalten abzurufen, oder gibt es eine Problemumgehung?

War es hilfreich?

Lösung

Afaik Sie müssen die gewünschten Spalten ausdrücklich erwähnen.

In der SQL -Abfrage dürfen Sie das Sternchen (*) verwenden, um anzugeben, dass alle Spalten in einer Tabelle zurückgegeben werden sollen. Für alle Dokumente gilt jedoch kein definierter und fester Satz von Eigenschaften. Aus diesem Grund ist das SQL -Sternchen in der Einstellung [Spalten] nicht zulässig.

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

Andere Tipps

FullTextSQLQuery verwendet eine SQL-ähnliche Syntax, ist jedoch nicht tatsächlich SQL. Die Abfrageanweisung wird intern nach SharePoint analysiert und die vom Crawler im Dateisystem generierten flachen Indexdateien sowie zum Generieren realer SQL -Abfragen verwendet, die in der Suchdatenbank ausgeführt werden können.

Sie können daher nicht "*" verwenden und sind darauf beschränkt, nur verwaltete Eigenschaften in Ihrer Auswahlanweisung anzugeben. Diese Eigenschaften können in Ihren SSP -Einstellungen definiert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top