문제

API에서 CSOM을 사용하고 있습니다.나는 문서에서 콘텐츠 검색을 위해 다음 코드를 사용했으며 이제는 CSOM을 사용하여 SharePoint 웹 사이트에서 사용자를 검색 할 수있는 사람들이 검색을 통합하려고합니다.

MethodResponse<ClientResult<ResultTableCollection>> response = new MethodResponse<ClientResult<ResultTableCollection>>();            
        UserCredential userCredential = new UserCredential();
        try
        {                
            userCredential = VerifyToken(token);
            if (userCredential != null)
            {
                _ctx = GetClientContext(userCredential);
                if (_ctx != null)
                {                     
                    KeywordQuery keywordQuery = new KeywordQuery(_ctx);
                    keywordQuery.QueryText = Convert.ToString(text);
                    SearchExecutor searchExecutor = new SearchExecutor(_ctx);
                    ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
                    _ctx.ExecuteQuery();                                                
                    response.ErrorCode = "200";
                    response.ErrorDescription = "No Error";
                    response.Response = results;                       
                }
            }
        }
.

나는 이것을 찾고 있지만 헛되이 시도했다.제발 도와주세요.

도움이 되었습니까?

해결책

나는 그것을 자신을 해결하고, 실제로 누군가를 도울 수 있습니다 ..

public MethodResponse> GetPeoples(string text, string token)
        {
            MethodResponse> response = new MethodResponse>();
            List lstMetadata = new List();
            UserCredential userCredential = new UserCredential();

            try
            {
                userCredential = VerifyToken(token);
                if (userCredential != null)
                {
                    _ctx = GetClientContext(userCredential);
                    if (_ctx != null)
                    {

                        KeywordQuery keywordQuery = new KeywordQuery(_ctx);
                        keywordQuery.QueryText = text;
//                        keywordQuery.HiddenConstraints = "scope:\"People\"";                        
                        keywordQuery.TrimDuplicates = true;                        
                        keywordQuery.SourceId = Guid.Parse("B09A7990-05EA-4AF9-81EF-EDFAB16C4E31");
                        SearchExecutor searchExecutor = new SearchExecutor(_ctx);
                        ClientResult results = searchExecutor.ExecuteQuery(keywordQuery);
                        _ctx.ExecuteQuery();

                        if (results.Value[0].RowCount > 0)
                        {
                            foreach (var resultRow in results.Value[0].ResultRows)
                            {
                                lstMetadata.Add(resultRow["PreferredName"].ToString());
                            }
                            response.ErrorCode = "200";
                            response.ErrorDescription = "No error.";
                            response.Response = lstMetadata;

                        }
                        else
                        {
                            response.ErrorCode = "400";
                            response.ErrorDescription = "No users found.";
                            response.Response = lstMetadata;
                        }
                    }
                }
            }
            catch (Exception ex)
            {        
                response.ErrorCode = "400";
                response.ErrorDescription = ex.Message;
                response.Response = null;
            }
            finally
            {
                _ctx.Dispose();
            }
            return response;
        }
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top