2010-06-01 1 views
1

처음에는이 표기법이 다른 표기법을 사용하여 거의 동일하게 수행되고 있다고 생각했습니다. 최근까지 KeyWordQuery/FullTextQuerySearch와 웹 서비스 쿼리의 결과가 큰 차이가 있음을 발견했을 때. KeywordQuery, Object Model 및 웹 서비스에 대한 FullTextQuerySearch 유형의 차이 쿼리

나는 값 (ASDSADA-21312ASD-ASDASD)와 customColumn XYZ의 값의 검색 키워드 쿼리와 전체 텍스트 방법을 모두 사용 : -

나는대로이 쿼리를 실행하면 : - FullTextSqlQuery : -

  FullTextSqlQuery myQuery = new FullTextSqlQuery(site); 
      { 
       // Construct query text 
       String queryText = "Select title, path, author, isdocument from scope() where freetext('ASDSADA-21312ASD-ASDASD') "; 

       myQuery.QueryText = queryText; 
       myQuery.ResultTypes = ResultType.RelevantResults; 
      }; 


      // execute the query and load the results into a datatable 
      ResultTableCollection queryResults = myQuery.Execute(); 
      ResultTable resultTable = queryResults[ResultType.RelevantResults]; 

      // Load table with results 
      DataTable queryDataTable = new DataTable(); 
      queryDataTable.Load(resultTable, LoadOption.OverwriteChanges); 

다음과 같은 결과가 문서에 표시됩니다.

* Title: TestPDF 
* path: http://SharepointServer/Shared Documents/Forms/DispForm.aspx?ID=94 
* author: null 
* isDocument: false 

위의 결과의 경로 및 isDocument 필드에 유의하십시오.

웹 서비스 메서드

그런 다음 웹 서비스 쿼리 방법을 시도했습니다. 나는 http://sharepointsearchserv.codeplex.com/에있는 셰어 포인트 검색 서비스 도구를 사용하고 freetext ('ASDSADA-21312ASD-ASDASD')와 동일한 쿼리, 즉 제목, 경로, 작성자, isdocument를 scope()에서 선택했다. 이번에는 다음과 같은 결과가 나타납니다. -

* Title: TestPDF 
* path: http://SharepointServer/Shared Documents/TestPDF.pdf 
* author: null 
* isDocument: true 

다시 경로를 적어 두십시오. 두 번째 방법의 검색 결과가 나에게 파일 경로를 정확하게 제공하기 때문에 유용하지만, 왜 방법 1이 저에게 같은 결과를주지 않는지 이해할 수 없습니다.

왜 두 결과간에 불일치가 있습니까?

답변

0

첫 번째 항목은 목록 항목이며 문서 자체는 아닙니다. 문서 라이브러리는 기본적으로 문서 라이브러리에 문서를 보관하기 위해 특별히 제작 된 목록입니다. 목록 항목에는 문서 내에 보유되지 않은 추가 메타 데이터가있을 가능성이 높습니다. 두 번째 결과는 실제 문서이므로 "isDocument"플래그가 그 결과입니다.

적어도 내 이론입니다.