2013-07-22 2 views
1

SharePoint 검색에 대한 사용자 지정 검색을 만듭니다. 페이지 크기 10 및 페이지 인덱스 (0 또는 1 또는 2)로 검색하면 실제 결과 40 일 때 총 결과 수는 55가되고 그렇지 않으면 페이지 크기 10 및 페이지 인덱스 4 총 결과 수는 50이되고 다른 행은 반환되지 않습니다. 페이지 크기 10 페이지 인덱스 3, 총 수가 40 될 경우, 는 40페이지 인덱스가 SharePoint 검색에서 FullTextQuery를 변경하면 TotalResults 수가 변경됩니다.

는 내 코드는 페이지 크기 100 페이지의 인덱스는 0, 총 카운트가됩니다 다른 경우 :

private static DataTable ExecuteSearchQuery(SPWeb web, int pageNumber, int pageSize, ref long totalRecords) 
    { 
     FullTextSqlQuery query = new FullTextSqlQuery(web.Site); 
     query.StartRow = pageSize * (pageNumber - 1); 
     query.RowLimit = pageSize; 
     query.TrimDuplicates = true; 
     query.ResultTypes = ResultType.RelevantResults; 
     query.QueryText = @"SELECT ID, Title, Modified ,URL FROM Scope() WHERE (CONTAINS(Url, '/lists/Comments') AND FREETEXT(Title,'*any*'))"; 
     ResultTableCollection results = query.Execute(); 
     DataTable searchResults = results[ResultType.RelevantResults].Table; 
     totalRecords = query.QueryInfo.TotalResults; 
     return searchResults; 
    } 

답변

0

이 문제가 발생합니다 페이징 웹 파트에 의해. 모든 페이지를 표시하도록 수정하면 통계 총 결과 수는 항상 동일합니다. 예를 들어, 페이징 웹 파트 속성에서 현재 페이지 전후의 페이지 수를 1000으로 변경하면 문제가 더 이상 존재하지 않는다는 것을 알 수 있습니다 !! 당신이 많은 페이지를 가지고 있다면 이것은 약간 추한 일입니다 !!!

체크 아웃이 : 당신의 대답하지만 총 레코드 내 문제에 대한 http://kamilmka.wordpress.com/2012/04/14/customize-sharepoint-search-results-paging/

+0

감사하지 페이징 –

+0

와 함께 네, 일관된 카운트로 1000..and 예 추한 후/전에 퍼팅 보여 듯 – David