fulltextsqlqueryでselect *を使用します
-
16-10-2019 - |
質問
私はFullTextSQLQueryを書いていますが、結果セットで利用可能なすべての列を返したいと思います。
列を指定するとき、 SELECT Title FROM scope() WHERE ("scope" = 'All Sites')
, 、クエリは正常に機能します。
すべての列を選択しようとするとき、 SELECT * FROM scope() WHERE ("scope" = 'All Sites')
, 、querymalformedexceptionが提起されます。
クエリ実行のコードは次のとおりです。
var sqlQuery = new FullTextSqlQuery(SPContext.Current.Site)
{
ResultTypes = ResultType.RelevantResults,
QueryText = searchQuery
};
var collectionOfResults = sqlQuery.Execute();
利用可能なすべての列を取得することは可能ですか、それとも回避策はありますか?
解決
afaikあなたが望む列について具体的に言及する必要があります。
SQLクエリでは、アスタリスク(*)を使用して、テーブル内のすべての列が返されることを指定することができます。ただし、すべてのドキュメントには定義された固定プロパティセットが適用されません。このため、[列]設定ではSQLアスタリスクは許可されていません。
他のヒント
FullTextSQLQueryはSQLのような構文を使用しますが、実際にはSQLではありません。クエリステートメントは、SharePointによって内部的に解析され、ファイルシステム上のCrawlerによって生成されたフラットインデックスファイルを照会し、検索データベースで実行できる実際のSQLクエリを生成するために使用されます。
したがって、「*」を使用することはできず、Selectステートメントで管理されたプロパティのみを指定することに限定されます。これらのプロパティは、SSP設定で定義できます。
所属していません sharepoint.stackexchange