Ricerca di pagine libreria usando fulltextsqlquery
-
09-12-2019 - |
Domanda
Qualcuno può indirizzarmi nella giusta direzione della ricerca della libreria Pages utilizzando Fulltextsqlquery?Ho istanziato con successo una nuova fulltextsqlquery e ho affrontato tutte le proprietà necessarie.Recupera i dati solo bene, ma poiché la mia query è:
Seleziona il titolo da Scope ()
Semplicemente per me per testare che funziona.Come faccio a perfezionare per aggiungere un dove una clausola per cercare solo la libreria di pagine?
Soluzione
Se stai interrogando più raccolte siti Utilizzare FullTextSQLQuery
poiché cerca in tutta la fattoria e se si prevede di interrogare la libreria di pagine di una raccolta singola, utilizzare invece SPSiteDataQuery
.Penso che potresti aver bisogno di SPSiteDataQuery
?
SPSiteDataQuery queryObj = new SPSiteDataQuery();
//query Pages libraries
queryObj.Lists = "<Lists ServerTemplate='850' />";
queryObj.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='FileRef' />";
queryObj.Webs = "<Webs Scope='Recursive' />";
DataTable dt = SPContext.Current.Web.GetSiteData(query);
foreach (DataRow row in dt.Rows)
{
//do something else
}
.
P.S.FullTextSqlQuery
potrebbe non essere sempre restituire i dati più freschi, ma è possibile ridurre la pianificazione del crawl incrementale a 15 minuti o 30 minuti.
Aggiornamento:
Imposta la proprietà queryText del tuo oggetto FullTextSQLQuery
come questa:
.
fullTextSqlQuery.QueryText =
"select title, ContentClass from scope() where (contentclass = 'STS_List_850')";
"sts_list_850": // denota una libreria di pagine