Pregunta

Estoy escribiendo un FullTextSqlQuery y me gustaría devolver todas las columnas disponibles en el conjunto de resultados.

Cuando especificar las columnas, por ejemplo SELECT Title FROM scope() WHERE ("scope" = 'All Sites'), la consulta funciona bien.

Cuando intento para seleccionar todas las columnas, por ejemplo, SELECT * FROM scope() WHERE ("scope" = 'All Sites'), se eleva un QueryMalformedException.

El código para la ejecución de la consulta es:

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

¿Es posible recuperar todas las columnas disponibles, o hay alguna solución?

¿Fue útil?

Solución

que sabemos, se tiene que mencionar específicamente las columnas que desee.

En la consulta SQL, se le permite utilizar el asterisco (*) para indicar que todas las columnas de una tabla deben ser devueltos. Sin embargo, ningún conjunto de propiedades definido y establecido se aplica a todos los documentos. Por esta razón, el asterisco SQL no está permitido en el ajuste [columnas].

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

Otros consejos

FullTextSqlQuery utiliza una sintaxis similar a SQL, pero en realidad no es SQL. La instrucción de consulta se analiza internamente por SharePoint y utiliza para consultar los archivos de índice planos generados por el rastreador en el sistema de archivos, así como para generar consultas SQL reales que pueden ejecutarse en la base de datos de búsqueda.

Por lo tanto, no puede utilizar '*', y se limitan a especificar propiedades sólo gestionados en su sentencia de selección. Estas propiedades se pueden definir en la configuración de SSP.

Licenciado bajo: CC-BY-SA con atribución
scroll top