[SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

22
SharePoint Korea Conference 2013 SharePoint 2013 의 의의 의의 의의 SharePoint MVP 의 의 의

description

 

Transcript of [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

Page 1: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

SharePoint 2013 의 검색 개발 방법

SharePoint MVP

김 승 진

Page 2: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

김 승진은

KTDS 커뮤니티팀 재직 중SharePoint MVP 2 년차 (2012, 2013)

GoDev 정회원

SharePoint 경력은 이제 이제 3 년차첫 만남은 2005 년도 어느 프로젝트에서 WSS2.0 으로

주로 ITPro 업무를 해왔으나 요즘은 ALM 에 관심 급증안되는 발코딩 중

그래도 주말에는 사랑스런 가족과 함께 ,,,

Page 3: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

이번 세션에서는

• 검색 개발이 왜 필요한가 ?

• 2013 검색 , 무엇이 새로워 졌는가 ?

• KQL, REST, CSOM 이용한 개발 방법• No-Code 커스텀 검색 개발 방법

Page 4: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

검색 개발이 왜 필요한가 ?

• 충분히 강력해 졌지만 고객은 여전히 배고파 !!• 디자인 바꿔줘 ~, 검색 결과 바꿔줘 ~

• SharePoint 검색은 “검색 센터"만을 위해서 존재하지 않는다 .• Mobile App, Windows 8 App, SharePoint APP, WebPart 형태

• SharePoint 를 넘어선 SharePoint 의 야심 BCS• 기간계 시스템 확장 Exchange, File Server, 기간계 시스템

Page 5: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

SharePoint 2013 검색 , 무엇이 새로워 졌는가 ?

SharePoint 2013 Search

Share-Point 2010

Search

FASTSearch forSharePoint

FASTTechnology

Page 6: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

개발자 관점의 검색 아키텍쳐

Http

File Shares

SharePoint

Profiles

Exchange

Lotus Notes

Documentum

Custom

Crawl

Connectors

Parsers

ContentPipeline

IndexingEngine

WebServiceCallout

CTS Runtime

Analyzer

QueryEngine

QueryPipeline

REST Service

ClientFramework

CSOM

Index

Search Schema

Mobile Apps

Windows 8 Apps

SP Apps

SharePoint

No-Code

Search Center

오늘은 여기까지만

Page 7: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

실행 쿼리 방법

• Keyword Query Language (KQL)• 권장함

• FAST Query Language(FQL)• 여전히 가능함

• SQL Query• 더 이상 지원하지 않음• 2010 에서 복잡한 쿼리 시 이용하였던 SQL 은 2013 에서 지원하지

않음 , KQL or FQL 로 변경해야만 함

Page 8: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

KQL 문법Keyword 예제 설명

일반

Text Korea “Korea” 이 포함된 항목 검색

Wildcard kore*“Korea” 와 “ Korean” 같은 항목 검색

Phrase “Korea Conference” 정확한 구문 검색

문서

IsDocument Korea IsDocument:1 “Korea” 을 포함한 문서 검색

FileExtension Korea FileExtension:docx “Korea” 을 포함한 워드문서 검색

Author Author:Seung-Jin IsDocument:1 저자가 “ Seung-Jin” 인 문서 검색

Title Title:SharePoint IsDocument:1 제목이 “ SharePoint” 인 문서 검색

사람 Lastname Lastname:Kim 성이 “ Kim” 인 사람 검색

작업 contentClasscontentClass:STS_ListItem_Tasks 모든 작업 항목 검색

http://msdn.microsoft.com/en-us/library/ee558911.aspx

Page 9: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

REST 실행 방법

• Keywords• http://server/site/_api/search/query?querytext='{KQL

Query}‘

• Selecting Properties• http://server/site/_api/search/query?

querytext='test'&selectproperties='Title,Rank'

• Sorting• http://server/site/_api/search/query?

querytext='test'&sortlist='LastModifiedTime:descending'

• http://server/site/_api/search/query?querytext='test'&sortlist='LastModifiedTime:descending,Rank:ascending'

http://blogs.msdn.com/b/nadeemis/archive/2012/08/24/sharepoint-2013-search-rest-api.aspx

Page 10: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

REST 실행 결과

Page 11: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

CSOM (Client Side Object Model)

• CSOM in SharePoint 2013

Custom Client Code

JavaScript

Library

Silverlight

Library

.Net CLRLibrary

_vit_bin/client.svc

Clie

nt

Serv

er

ExecuteQuery

OData

_api

Page 12: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

DEMOREST API, OData Protocol 

Page 13: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

CSOM (Client Side Object Model)

• CSOM 영역의 확장

User Profiles

Search

Taxonomy

Feeds

Publishing

Sharing

Workflow

E-Discovery

IRM

Analytics

Business Data

Page 14: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

검색 Code 개발을 위한 궁합

• JavaScript/REST• 원격 어플리케이션 개발 시 추천

• JavaScript/CSOM• SharePoint-Hosted apps 개발에서만 지원

• C#/REST• 가능하나 구현 시 복잡함

• C#/CSOM• 원격 어플리케이션 개발 시 추천

• C#/SSOM• Farm 솔루션 기반에서 이용

Page 15: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

JavaScript/REST 예제

1. $.ajax(

2. {

3. url: “http://site/_api/search/query?query-text='sharepoint'",

4. method: "GET",

5. headers: {

6. "accept": "application/json;odata=verbose",

7. },

8. success: Results.onSuccess,

9. error: Results.onError

10. }11. );

Page 16: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

C#/CSOM 예제

1.ClientContext cctx = new ClientContext("http://site");2.KeywordQuery query = new KeywordQuery(cctx);3.query.QueryText = "{KQL}";

4.SearchExecutor executor = new SearchExecutor(cctx);5.ClientResult<ResultTableCollection> results = 6.

executor.ExecuteQuery(query);

7.cctx.ExecuteQuery();

8.ResultTable result = results.Value[0];9.foreach (var r in result.ResultRows){ }

Page 17: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

C#/SSOM 예제

1. using (SPSite site = new SPSite("http://site")) {

2. KeywordQuery kq = new KeywordQuery(site);

3. kq.SourceId = new Guid(“{GUID}");

4. kq.QueryText = “{KQL}";

5. kq.Properties["Tag"] = “{GUID}";

6. ResultTableCollection resultTables =

7. new SearchExecutor().ExecuteQuery(kq);

8. }

Page 18: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

DEMOJavaScript/REST+jqGrid 개발

Page 19: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

No-Code 커스텀 개발 도구

• Result Sources• Local/Remote SharePoint, OpenSearch, Exchange

• Query Rules• Result Source 에서 규칙을 적용하는 도구

• Result Types• 새로운 Design Manager 를 이용하여 Display Templates 구성

• Search Navigation• 검색 센터의 영역 탭을 관리

• 또 다른 도구들• Hover Panel, Refiners, Content Search web part (CSWP)

Page 20: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

DEMONo-Code 검색 개발

Page 21: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

참고 자료• MSDN

• SharePoint 2013 Search server class library

• http://msdn.microsoft.com/en-us/library/ee534981.aspx

• Choose the right API set in SharePoint 2013

• http://msdn.microsoft.com/en-us/library/jj164060.aspx

• Building search queries in SharePoint 2013

• http://msdn.microsoft.com/en-us/library/jj163973.aspx

• Get started with the SharePoint 2013 REST service

• http://msdn.microsoft.com/en-us/library/fp142380.aspx

• Using the SharePoint 2013 REST service

• http://msdn.microsoft.com/en-us/library/fp142386.aspx

• What's new in SharePoint 2013 search for developers

• http://msdn.microsoft.com/en-us/library/jj163951.aspx

• SharePoint Search REST API overview

• http://msdn.microsoft.com/en-us/library/jj163876.aspx

• Customizing search results in SharePoint 2013

• http://msdn.microsoft.com/en-us/library/jj687488.aspx

• SharePoint Conference 2012

• SPC230 – Hiller’s Building Search-Driven Applications in SharePoint 2013

• SPC231 – Wardly’s Search Development in SP2013

• SPC202 – Molback’s Search Architecture in SharePoint 201

Page 22: [SharePoint Korea Conference 2013 / 김승진] Share point 2013 검색 개발 방법

SharePoint Korea Conference 2013

감사합니다 [email protected]

http://fb.com/jincrom

http://jincrom.tistory.com