كيفية استخدام البحث خادم شير (فئة كيوردكيري) للبحث من خلال قائمة شير?

StackOverflow https://stackoverflow.com//questions/23062621

  •  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 ";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top