Modelo de objetos de SharePoint vs Servicios Web
-
30-09-2019 - |
Pregunta
que había creado una consulta XML que yo enviaba a mi servicio de búsqueda de SharePoint, que regresaba algunos resultados. entonces me sacó el texto de la consulta SQL fuera de él y empecé a usarlo con el modelo de objetos y ahora no está funcionando. ¿Se ve como que estoy haciendo algo mal basado en el código de abajo?
consulta XML (devuelve los resultados):
<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000">
<Query domain="QDomain">
<SupportedFormats><Format>urn:Microsoft.Search.Response.Document.Document</Format></SupportedFormats>
<Context>
<QueryText language="en-US" type="MSSQLFT"><![CDATA[ SELECT Title, Rank, owsPublished1,owsSocialx0020Networkx0020Update, Description, Write, Path FROM scope() ORDER BY "Rank" DESC ]]></QueryText>
</Context>
<Range><StartAt>1</StartAt><Count>20</Count></Range>
<EnableStemming>false</EnableStemming>
<TrimDuplicates>true</TrimDuplicates>
<IgnoreAllNoiseQuery>true</IgnoreAllNoiseQuery>
<ImplicitAndBehavior>true</ImplicitAndBehavior> <IncludeRelevanceResults>true</IncludeRelevanceResults> <IncludeSpecialTermResults>true</IncludeSpecialTermResults>
<IncludeHighConfidenceResults>true</IncludeHighConfidenceResults>
</Query></QueryPacket>
código del modelo de objetos (no):
SPSite site = new SPSite("http://sp-dev/");
ServerContext sc = ServerContext.GetContext(site);
FullTextSqlQuery ftq = new FullTextSqlQuery(sc);
string querySQL = @"SELECT Title, Rank, owsPublished1,owsSocialx0020Networkx0020Update, Description, Write, Path FROM scope() ORDER BY ""Rank"" DESC ";
ftq.QueryText = querySQL;;
ResultTableCollection results = ftq.Execute();
Solución
Es necesario al menos añadir:
ftq.EnableStemming = false;
ftq.TrimDuplicates = true;
ftq.IgnoreAllNoiseQuery = true;
ftq.KeywordInclusion = KeywordInclusion.AllKeywords;
para al menos hacer una comparación justa entre los dos métodos. A continuación, también puede probar:
ftq.AuthenticationType = QueryAuthenticationType.PluggableAuthenticatedQuery;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow