Verwenden Sie in FullTexTSQLQuery aus Select * in FullTexTSQLQuery
-
16-10-2019 - |
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?
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.
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.