كيفية استخدام البحث خادم شير (فئة كيوردكيري) للبحث من خلال قائمة شير?
-
26-12-2019 - |
سؤال
لدينا شرط حيث يسمح للمستخدمين بالبحث في قائمة تسمى "التقارير" من الواجهة الأمامية ، والبحث المتقدم ، مثل author:"John Smith"
أو filetype:docx
, ، هو أن تكون مدعومة.
قررنا أن هذا يمكن تحقيقه باستخدام شير خادم البحث أبي (باستخدام لغة استعلام الكلمات الرئيسية).أيضا ، نظرا لأنه من الممكن ألا يتمكن جميع المستخدمين من الوصول إلى جميع العناصر الموجودة في القائمة ، فقد قررنا اتباع نهج استخدام طريقة ويب ذات امتيازات مرتفعة للاستعلام عن القائمة.
هذه هي محاولتي حتى الآن...
public string GetSearchResults(string listname, string searchQuery)
{
SPUser superUser = SPContext.Current.Web.AllUsers[@"SHAREPOINT\SYSTEM"];
using (SPSite site = new SPSite(SPContext.Current.Web.Url, superUser.UserToken))
{
KeywordQuery keywordQuery = new KeywordQuery(site);
keywordQuery.QueryText = searchQuery;
//where should listname be specified?
SearchExecutor searchExecutor = new SearchExecutor();
ResultTableCollection resultTableCollection = searchExecutor.ExecuteQuery(keywordQuery);
var resultTables = resultTableCollection.Filter("TableType", KnownTableTypes.RelevantResults);
ResultTable resultTable = resultTables.FirstOrDefault();
DataTable dataTable = resultTable.Table;
}
//how to parse result to filter only items in given list?
}
...ولكن ما لا أفهمه هو كيفية تقييد البحث على قائمة معينة فقط أو كيفية تحليل نتيجة البحث لاسترداد عناصر القائمة المطابقة لاستعلام البحث.
أنا جديد على شاريبوانت البحث ، لذلك أي مؤشرات من شأنه أن يساعد.
المحلول
هذا ممكن إما لإعطاء مسار القائمة أو دليل القائمة في نص الاستعلام
keywordQuery.QueryText = "Path:/Sales/Lists/Prospects/ (contentclass:STS_ListItem OR IsDocument:True) -ContentClass=urn:content-class:SPSPeople ";