SharePoint 2013에서 사용자 지정 검색 판매 보고서에 대한 쿼리 규칙, 결과 유형 및 표시 서식 파일 사용
최초 문서 게시일: 2012년 7월 24일 화요일
(표준 고지 사항: 블로그 서식이 별로 좋지 않습니다. 블로그의 Word 문서 버전인 첨부 파일을 다운로드하여 보면 나을 것입니다.)
오늘 살펴볼 이 긴 제목의 주제에는 유용한 자료가 많이 포함되어 있습니다. SharePoint 2013에는 검색 결과를 실제로 사용하고 사용자 지정할 수 있는 뛰어난 기능이 많이 있습니다. 이들 기능을 전체적으로 살펴보거나 이 게시물에서 사용하는 구성 요소에 대해 자세히 설명하지는 않겠습니다. 이러한 기능이나 구성 요소가 잘 설명된 다른 자료가 있을 테니까요. 대신 기존 검색 결과 집합을 보고 각 기능에 대해 간략하게 설명한 후 이를 통해 모두 완벽한 조화를 이루고 매우 멋지게 사용자 지정된 검색 결과를 만드는 과정을 안내하겠습니다.
먼저 내 팜에서 "sales reports"에 대한 쿼리를 실행할 때 어떤 검색 결과가 표시되는지 보겠습니다. 참고: 이 버전은 베타 2 빌드이며 최종 릴리스는 다를 수 있습니다.
검색 결과가 표시되는 기본 환경이며 깔끔해 보입니다. 하지만 SharePoint 2013에서 최종 사용자의 검색 환경을 개선하는 데 도움이 되도록 이러한 기능을 추가했으므로 여기서 저희 시나리오에 몇 가지를 추가해 보겠습니다. 저희 회사에는 여러 부서가 있으며 많은 부서에서 부서 내 판매 관리를 담당합니다. 각 부서에서는 표준 Excel 서식 파일을 사용하여 시간별 판매 활동을 보고합니다. 또한 부서마다 고객 관계 관리 및 판매 정보 보고를 담당하는 직원이 한 명씩 있습니다. SharePoint에서 이러한 기능을 사용하여 부서와 부서 고객에 대한 중요한 정보를 표준화한 후 제공하려면 어떻게 해야 할까요? 다각적 방법으로 이 문제를 해결해 보겠습니다.
사용자 지정 콘텐츠 형식
먼저 SharePoint에 판매 보고서를 업로드하는 모든 사용자를 위한 사용자 지정 콘텐츠 형식을 만들겠습니다. 이렇게 하려면 사용할 사이트 열 즉, 검색 판매 보고서에 표시할 필드를 만듭니다. 이 시나리오를 위해 사용할 다음 사이트 열을 정의했습니다.
사이트 열 이름 |
유형 |
Account Manager |
한 줄 텍스트 |
Direct Reports |
숫자 |
Sales Region |
선택: Northamerica, EMEA, Asia |
Top Accounts |
한 줄 텍스트 |
Total Accounts |
숫자 |
그런 다음 이러한 사이트 열을 모두 포함하는 콘텐츠 형식을 만들었습니다. 콘텐츠 형식이 팜 내의 제가 등록한 모든 사이트(이 경우 모든 웹 응용 프로그램의 모든 사이트)로 푸시되도록 제 Managed Metadata Service에 연결된 게시 허브 사이트에서 콘텐츠 형식을 만들었습니다.
다음으로 판매 보고서를 저장하는 문서 라이브러리에서 각 부서의 사이트 모음에 사용 가능한 콘텐츠 형식 목록에 이 콘텐츠 형식을 직접 추가했습니다. 이 단계를 자동화하는 방법은 여러 가지이지만 여기서는 간략히 하기 위해 수동으로 작업했습니다. 자, 첫 번째 단계가 완료되었습니다. 사용자 지정 콘텐츠 형식이 만들어져서 배포되고 판매 보고서가 문서 라이브러리에 추가되므로 이제 Account Manager가 판매 보고서를 업로드하고 메타데이터를 입력할 때 판매 보고서를 식별할 수 있습니다.
관리 속성
사이트에 판매 보고서를 추가했으므로 이제 판매 보고서 사용자 지정 사이트 열에서 관리 속성을 만들어야 합니다. 이 시나리오에 관한 한 SharePoint 2010과 비교하여 SharePoint 2013에서 새로운 내용이 없습니다. 전체 크롤링을 수행하여 크롤링된 속성을 만들고, 크롤링된 속성에 매핑되는 관리 속성을 만든 다음 전체 크롤링을 다시 수행해야 합니다. 전체 팜 솔루션을 구현하기 때문에 이 시나리오에서 달라진 것은 없습니다. 그러나 SharePoint 2013에는 사이트 모음 관리자가 사이트 모음, 사이트 또는 목록에 전체 크롤링 표시를 할 수 있는 유용한 기능이 있습니다. 따라서 범위를 축소하여 이 작업을 수행할 때 엔터프라이즈 전체 크롤링을 수행할 필요가 없으므로 매우 편리합니다. 기능에 대한 자세한 내용은 다른 게시물에서 설명하겠습니다. 저희의 솔루션 범위는 전체 팜을 대상으로 하므로 여기서는 이러한 기능이 있다는 것만 말하고 자세히 다루지 않습니다.
쿼리 규칙
이제 사용자 지정 콘텐츠 형식을 사용 중인 판매 보고서가 있고, 해당 판매 보고서에 대한 메타데이터 값으로 채워지는 관리 속성이 있습니다. 다음 작업은 누군가 이러한 판매 보고서 중 하나를 포함하는 내용을 검색할 때 해당 항목이 "보고"되는지 확인하는 것입니다. SharePoint 2013에는 쿼리 규칙 기능이라는 이를 위한 완벽한 기능이 있습니다. 다음의 쿼리 규칙의 세 가지 주요 구성 요소입니다.
- 조건 – 쿼리 규칙에 대한 조건에 따라 언제 규칙이 적용될지가 결정됩니다. 규칙을 다양하게 변형할 수 있습니다. 이러한 쿼리 규칙이 사용될 가능성은 매우 높지만 여기서는 간략하게 살펴보겠습니다. 실제로 많은 조건이 기본으로 제공됩니다. 또 다른 흥미로운 사실은 쿼리 규칙을 검색 결과마다 적용하려면 조건이 없어야 한다는 것입니다. 물론 다양한 조건이 적용되는 반대의 경우도 있습니다. 여기서는 많은 가능성 사이에서 어떻게 헤매게 되는지 금방 알 수 있을 것입니다. 쿼리 규칙에 사용할 수 있는 조건은 다음과 같습니다.
- 특정 단어 또는 구로 시작하거나 끝나는 쿼리
- 동작 단어(일반적으로 동사를 정의하는 단어, 예: "다운로드")를 포함하는 쿼리
- 관리 메타데이터 용어 집합에 있는 단어를 포함하는 쿼리(매우 유용)
- 비디오 결과, 문서 결과 등의 다른 결과 원본(사용자가 결과 원본을 정의하고 만들기 때문에 어느 것이나 가능)에 공통되는 쿼리
- 결과에는 많이 클릭하는 결과 유형(토론, Excel 스프레드시트 등)이 포함됩니다.
- 정규식을 적용하기 어려운 고급 규칙은 쿼리를 동작 용어와 주제 용어로 나누며 동작 용어 다음의 용어는 제거됩니다.
- 동작 – 동작은 쿼리 규칙에 대한 조건이 충족될 때 수행할 작업입니다. 여기서는 세 가지 옵션을 선택할 수 있습니다.
- 승격된 결과 추가 – 이는 SharePoint 2010의 최상의 선택 및 FAST Search for SharePoint 2010의 시각적 최상의 선택과 비슷합니다. 모든 검색 결과 위에 표시될 새로운 링크를 추가할 수 있습니다. 시각적 최상의 선택처럼 링크를 하이퍼링크 또는 그림으로 렌더링하도록 선택할 수 있습니다.
- 결과 블록 추가 – 결과 블록에서는 추가 쿼리를 실행하고 결과를 원래 검색 결과와 함께 반환 및 렌더링할 수 있습니다. 결과가 모두 함께 한 블록으로 렌더링되므로 블록이라고 합니다. 블록을 모든 검색 결과 위에 표시하거나 순위에 따라 다른 검색 결과와 함께 표시할 수 있습니다. 이것이 두 쿼리 간의 관련성 순위를 지정한다는 의미는 아닙니다. 단지 전체 블록이 모든 다른 로컬 검색 결과와 함께 순위를 갖는다는 의미입니다. 결과 블록에서 항목을 클릭하면 해당 클릭 동작이 로컬로 기록되고 전체 블록이 더 높은 관련성을 갖게 됩니다. 블록의 항목을 여러 번 클릭하면 자주 선택되지 않는 개별 결과보다 관련성이 높아지므로 해당 블록이 결과에서 점점 위로 이동하게 됩니다. 실제로 결과 블록을 구성하기 위해 수행할 수 있는 수많은 작업이 있지만, 앞에서 말한 것처럼 여기서는 세부적으로 다루지 않습니다.
- 쿼리를 변경하여 변경된 순위 결과 – 이 자세한 정보 표시 옵션은 말 뜻 그대로입니다. 실제로 요청된 쿼리를 원하는 방식으로 변경할 수 있습니다. 기준을 추가하고 용어를 제거하고 XRANK를 사용하여 순위를 수정할 수 있습니다. 이 옵션은 매우 광범위합니다.
- 게시 – 게시를 통해 쿼리 규칙이 사용되는 경우와 시기를 제어할 수 있습니다. 예를 들어 추수 감사절 판매 이후 원하는 날짜에 적용할 규칙 집합을 만들 수 있습니다. 하지만 해당 날짜가 되기 이전에는 규칙을 적용하지 않으려고 합니다. 이 경우 규칙을 만들지만 규칙이 비활성화되도록 게시를 구성할 수 있습니다. 또는 규칙을 활성화하지만 특정 날짜 이전에 시작되지 않고 이후 날짜에 종료되도록 규칙을 구성할 수 있습니다.
쿼리 규칙이 무엇인지를 "간략하게" 살펴보았으므로 이제 여기서 쿼리 규칙을 어떻게 사용할까요? 이와 관련하여 기본으로 제공되는 쿼리 규칙이 있습니다. 실제로 위의 스크린샷을 찍을 때 규칙의 영향을 쉽게 이해할 수 있도록 규칙을 비활성화했습니다. 여기서는 사용자가 판매 보고서를 보려고 하면 부서 판매 보고서가 나타나고 알림 메시지가 표시되도록 하는 쿼리를 원합니다. 자, 그러면 검색 사이트 모음, 사이트 설정으로 이동하여 쿼리 결과 링크를 클릭합니다. 원본 선택 드롭다운을 클릭하고 로컬 보고서 및 데이터 결과를 선택합니다. 그러면 보고서 및 데이터(Reports and Data)라는 쿼리 규칙이 표시됩니다. 이 쿼리 규칙을 클릭하고 드롭다운 메뉴에서 보기를 선택하여 규칙이 어떻게 구성되어 있는지 확인합니다. 다음과 비슷합니다.
- 조건 – 규칙의 조건은 쿼리의 시작 또는 끝 부분에  analysis, cube, dashboard, dashboards, data, database, report, reports, sales라는 단어 중 하나를 포함하는 것입니다. 여기서는 reports와 sales가 모두 표시됩니다. 따라서 누군가가 "sales report"에 대한 쿼리를 수행하면 이 쿼리 규칙이 실행됩니다. 완벽합니다. 누군가 "sales report"를 검색하면 저희 부서의 판매 보고서가 표시될 것입니다. 이 규칙의 일부로 동작 용어에 일치하는 항목이 할당되고 나머지는 모두 주제 용어에 할당합니다. 이 경우 동작 용어에 "reports"가 할당되고 주제 용어에 “sales”가 할당됩니다.
- 동작 – 이 규칙에 대한 동작은 주제 용어만을 기준으로 다른 쿼리를 실행하는 것입니다. 따라서 위의 조건을 기준으로 "sales"에 대해서만 별도의 쿼리를 실행합니다. 그러면 다른 모든 결과 위에 항상 반환되는 블록이 추가됩니다. 하지만 로컬 보고서 및 데이터 결과 원본에서만 sales를 검색합니다. 이는 기본으로 제공되는 결과 원본이며, Excel 문서(파일 확장명이 .XLSX, XLS 등으로 끝나는 문서)를 효과적으로 반환합니다. 이 동작은 Excel 문서에 대해서만 "sales" 쿼리를 실행합니다.
- 게시 – 시작 또는 종료 날짜 제한 없이 규칙이 활성화되므로 항상 적용됩니다.
이 쿼리 규칙을 다시 활성화했으므로 이제 sales reports에 대한 쿼리를 실행할 때의 결과는 다음과 같습니다.
점점 개선되고 있습니다. 쿼리 규칙을 적용했으므로 이제 결과 위에 표시되는 사용자 지정 판매 보고서 콘텐츠 형식을 기반으로 문서를 가져옵니다. 하지만 아직은 문서에 대한 메타데이터를 보여주지 않고 있습니다. 메타데이터야 말로 모든 것을 한데 모으는 역할을 합니다.
표시 서식 파일
SharePoint 2010에서는 특정 항목을 다르게 렌더링하려면 실행할 프로세스가 모호할 뿐만 아니라 핵심 결과 웹 파트에서 엄청나게 많은 XSLT를 수정해야 합니다. 따라서 자신의 XSLT 기술만으로 방대한 문서에서 사용자 지정 코드를 삽입할 올바른 위치를 찾아야 했습니다. 이는 즐거운 작업은 아닙니다.
SharePoint 2013에는 표시 서식 파일이라는 놀라운 기능이 있습니다. 이제 사용자 지정 표시 코드를 HTML로 만들 수 있으므로 더 이상 XSLT Zen이 필요 없습니다. 실제로 이 게시물을 위해 Adobe의 Dreamweaver CS6을 사용하여 사용자 지정 표시 서식 파일의 "코드"를 작성했습니다. 그렇다면 표시 서식 파일은 어떻게 사용합니까?
표시 서식 파일을 사용하여 다음과 같은 몇 가지 항목을 추적할 수 있습니다.
- 관리 속성 – 쿼리할 때 검색할 관리 속성을 지정해야 합니다. 그런 다음 아래에 설명한 방법에 따라 관리 속성을 HTML에서 사용할 수 있습니다.
- 외부 JS 및 CSS – 표시 서식 파일에 javascript 또는 CSS 파일을 사용하려면 해당 파일을 구체화하여 표시 서식 파일에 추가할 수 있습니다.
- 인라인 JS – 표시 서식 파일에서 인라인 JS를 사용할 수도 있습니다. 인라인 JS가 표시 서식 파일의 첫 번째 <div> 아래에 있는지를 확인해야 합니다. 또한 첫 번째 DIV 아래에는 다른 많은 항목이 있습니다.
- HTML – 여기서는 결과를 렌더링할 표시 서식 파일에 대한 실제 HTML을 만듭니다.
이 표시 서식 파일의 경우 여기서 만든 사용자 지정 판매 보고서 콘텐츠 형식에서 특성을 모두 가져와서 검색 결과에 다음과 같이 표시되도록 합니다.
이제 시작하겠습니다. 새 표시 서식 파일을 만들 때 항상 기존 표시 서식 파일을 사용하려고 할 것입니다. 검색 센터 사이트 모음인 사이트 설정으로 이동하는 경우 마스터 페이지와 페이지 레이아웃 링크를 클릭합니다. 라이브러리로 이동하는 경우 Display Templates 폴더와 Search 폴더를 차례로 클릭합니다. 이들 폴더에서 기본으로 제공되는 모든 표시 서식 파일을 찾을 수 있습니다. 이름은 같지만 확장명이 .html 또는 .js인 많은 파일이 표시됩니다. 중요한 파일은 .html 파일입니다. .js 파일은 .html 파일을 업로드하면 자동으로 생성됩니다. 이 경우 표시 서식 파일이 Excel 파일용이므로 Item_Excel.htm 파일로 시작했습니다. 복사본을 로컬로 다운로드하고 이름을 SalesReport.html로 지정한 다음 Dreamweaver에서 열었습니다.
이제 제 관리 속성을 추가합니다. 표시 서식 파일에 필요한 관리 속성에 넣는 mso:ManagedPropertyMapping이라는 태그가 있습니다. 방금 나머지 관리 속성과 동일한 형식으로 목록 끝에 관리 속성을 다음과 같이 추가했습니다.
<mso:ManagedPropertyMapping msdt:dt="string">'Title':'Title', 'Author':'Author', 'Size':'Size', 'Path':'Path', 'Description':'Description', 'LastModifiedTime':'LastModifiedTime', 'CollapsingStatus':'CollapsingStatus', 'DocId':'DocId', 'HitHighlightedSummary':'HitHighlightedSummary', 'HitHighlightedProperties':'HitHighlightedProperties', 'FileExtension':'FileExtension', 'ViewsLifeTime':'ViewsLifeTime', 'ParentLink':'ParentLink', 'ViewsRecent':'ViewsRecent', 'FileType':'FileType', 'IsContainer':'IsContainer', 'ServerRedirectedURL':'ServerRedirectedURL', 'ServerRedirectedEmbedURL':'ServerRedirectedEmbedURL', 'ServerRedirectedPreviewURL':'ServerRedirectedPreviewURL', 'AccountManager':'AccountManager', 'SalesRegion':'SalesRegion', 'TotalAccounts':'TotalAccounts', 'TopAccounts':'TopAccounts', 'DirectReports':'DirectReports', 'ContentType':'ContentType'</mso:ManagedPropertyMapping>
보시다시피 AccountManager, SalesRegion 등을 추가했습니다. 이들은 모두 제 사용자 지정 콘텐츠 형식에 대해 만든 속성입니다. 그리고 다음 내용이 나타날 때까지 아래로 스크롤했습니다.
<div id="_#= $htmlEncode(itemId) =#_" name="Item" data-displaytemplate="ExcelItem" class="ms-srch-item" onmouseover="_#= ctx.CurrentItem.csr_ShowHoverPanelCallback =#_" onmouseout="_#= ctx.CurrentItem.csr_HideHoverPanelCallback =#_">
_#=ctx.RenderBody(ctx)=#_
<div id="_#= $htmlEncode(hoverId) =#_" class="ms-srch-hover-outerContainer"></div>
</div>
위에 빨간색으로 강조 표시된 외부 DIV 태그 사이의 모든 항목을 삭제했습니다. 이제 제 HTML을 작성할 수 있습니다. 이를 위해서는 먼저 다음과 같은 세 가지 사항을 알고 있어야 합니다.
- 표시 서식 파일의 <head> 섹션에 <style> 태그를 유지하는 것이 가장 쉬운 방법입니다. 그러나 style 태그는 표시 서식 파일이 렌더링될 때 삭제되므로, style 태그를 직접 복사하여 개별 CSS 파일에 넣어야 합니다. 하지만 HTML을 실제로 만들 때는 원하는 표시 서식 파일의 디자인에 맞게 style 태그를 사용하거나 수정할 수 있습니다.
- 위에서 설명한 것처럼 인라인 javascript를 추가할 수 있습니다. 즉, javascript 코드가 올바른 위치에 있는 한 해당 코드를 추가할 수 있습니다. 표시 서식 파일에서 올바른 위치는 표시 서식 파일의 첫 번째 DIV 태그 뒤에 반드시 위치해야 함을 의미합니다. 또한 <!--#_ 및 _#-->와 같은 여는 태그와 닫는 태그 집합 사이에 위치해야 합니다. 사용자 지정 태그에 대해서는 아래에서 자세히 설명하겠지만 javascript가 이 두 태그 사이에 있지 않으면 실행되지 않습니다. 또한 출력될 HTML을 만들 때 인라인 javascript에 정의된 변수를 사용할 수 있습니다. 자세한 내용은 다음 항목에서 설명하겠습니다.
- 만든 인라인 javascript에서 관리 속성 또는 변수를 가져오려면 _#= 및 =#_와 같은 여는 태그와 닫는 태그 집합으로 묶어야 합니다. 관리 속성은 ctx.CurrentItem 개체에서 모두 사용할 수 있습니다. 예를 들어 AccountManager 관리 속성을 가져오려면 _#= ctx.CurrentItem.AccountManager =#_ 태그를 추가합니다. var foo = “The current Account Manager is “ + ctx.CurrentItem.AccountManager + “.”;와 같은 javascript가 있는 경우 "foo"를 가져오려면 _#= foo =#_ 태그를 추가합니다. 이를 통해 표시 서식 파일에 대해 사용할 데이터를 유연하게 추가하고 처리할 수 있습니다.
지금까지 HTML을 만드는 메커니즘에 대해 알아보았습니다. 위의 표시 서식 파일을 만드는 데 사용한 방법은 다음과 같습니다. head 태그 사이에 style 특성을 추가했습니다.
<style>
.ReportDiv
{
float:left;
}
.ReportText
{
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
}
.ReportHeading
{
font-weight: bold;
}
.LogoImg
{
margin-top: 15px;
width: 118px;
height: 101px;
}
.MasterDiv
{
float:left;
height: 215px;
width: 342px;
background-repeat: no-repeat;
background-image: url(https://sps/sites/search/PublishingImages/SalesReportBackground.PNG);
padding: 15px;
}
.DetailsContainer
{
background-color:#CCC;
}
</style>
Account Manager 세부 정보에서 배경으로 사용한 이미지는 제 사이트에 이미 업로드한 이미지이고, 나머지 이미지는 설명이 필요 없습니다 다시 말해 이 style 태그를 내 <head> 섹션에 삽입하여 Dreamweaver에서 디자인할 때 정확한 레이아웃을 확인할 수 있습니다.
이제 표시 서식 파일을 만드는 데 사용되는 HTML에 대해 살펴보겠습니다.
<div>
<div class="ReportDiv">
<img class="LogoImg" src="https://sps/sites/search/PublishingImages/SalesReportLogo.PNG" />
</div>
<div class="MasterDiv">
<!-- Title and link to item -->
<a href="_#= ctx.CurrentItem.Path =#_" class="ReportText">_#= ctx.CurrentItem.Title =#_</a>
<br/><br/>
<!-- Account Manager -->
<span class="ReportHeading ReportText">
Account Manager:
</span>
<span class="ReportText">
_#= ctx.CurrentItem.AccountManager =#_
</span><br/>
<!-- Sales Region -->
<span class="ReportHeading ReportText">
Sales Region:
</span>
<span class="ReportText">
_#= ctx.CurrentItem.SalesRegion =#_
</span><br/>
<!-- Total Accounts -->
<span class="ReportHeading ReportText">
Total Accounts:
</span>
<span class="ReportText">
_#= ctx.CurrentItem.TotalAccounts =#_
</span><br/>
<!-- Top Accounts -->
<span class="ReportHeading ReportText">
Top Accounts:
</span>
<span class="ReportText">
_#= ctx.CurrentItem.TopAccounts =#_
</span><br/>
<!-- Direct Reports -->
<span class="ReportHeading ReportText">
Direct Reports:
</span>
<span class="ReportText">
_#= ctx.CurrentItem.DirectReports =#_
</span><br/>
<!-- Hit Highlighted Text -->
<br/>
<span class="ReportHeading ReportText">
Details:
</span>
<br/>
<span class="DetailsContainer ReportText">
_#= Srch.U.processHHXML(ctx.CurrentItem.HitHighlightedSummary) =#_
</span>
</div>
</div>
이 콘텐츠의 서식 기능에 대해서는 생략하고 데이터를 중심으로 설명하겠습니다. 어디에서든 _#= 및 =#_ 태그를 사용하여 관리 속성을 연결한 위치를 확인할 수 있습니다. 순수 토큰 대체이므로 위의 <a> href 특성에도 바로 사용할 수 있습니다(훨씬 많이 관련된 XSLT를 통한 작업의 경우와 반대). 나머지 필드는 서식을 위해 적절한 DIV 또는 SPAN 태그에 연결됩니다. 여기서 다루는 한 가지 "특별" 사례는 검색과 함께 제공되는 기본 제공 처리 구성 요소를 사용하는 HitHighlightedSummary에 대한 것입니다. 현재 구성 요소 및 방법과 그 기능에 대한 전체 목록을 가지고 있지 않지만, 사용하지 않을 경우 요약 내용이 강조 표시되지 않기 때문에 하나 추가합니다. 따라서 이 방법을 해당 목적에 맞게 사용해야 합니다.
모든 항목이 제대로 작동하고 있으므로 이제 태그에 대해 한 가지 작업만 수행하면 됩니다. <style> 태그 사이의 모든 항목을 복사한 다음 SalesReport.css라는 새 CSS 문서에 붙여 넣습니다. 제 마스터 페이지 갤러리의 /Display Templates/Search 폴더에 styles이라는 다른 폴더를 만들었습니다. SalesReport.css 파일을 이 디렉터리에 업로드했습니다. 이제 제 표시 서식 파일에서 이 파일을 사용하려면 새 script 태그를 추가해야 합니다. 이 태그는 <body> 태그 아래와 첫 번째 <div> 태그 위에 위치해야 합니다. SharePoint javascript 함수인 $includeCSS를 사용하여 표시 서식 파일에 대해 제 CSS 파일을 가져옵니다. 따라서 여는 태그는 다음과 같습니다.
<body>
<script>
$includeCSS(this.url, "./styles/SalesReport.css");
</script>
<div id="Item_SalesReport">
이제 코드를 완성했지만 사용자 지정 표시 서식 파일을 사용하려면 어떻게 해야 할까요?
결과 유형
결과 유형은 규칙 집합을 기준으로 표시 서식 파일을 호출하는 방법입니다. 규칙을 사용하는 방법은 간단합니다. 전자 메일, PDF, Word 문서, SharePoint Wiki 등과 같이 미리 정의된 특정 콘텐츠 형식에 대해 규칙을 적용할 수 있습니다. 이외에 특정 결과 원본에 대한 쿼리인 경우에만 규칙을 사용할 수도 있습니다. 마지막으로 일반적인 비교를 통해 관리 속성을 규칙에 대한 기준으로 선택할 수도 있습니다. 예를 들어 VP에 대해 다른 표시 유형을 사용하려면 AccountManager 필드에 "Vice President"가 포함되어 있는 경우에만 결과 유형 규칙이 적용되도록 할 수 있습니다. 여기서는 콘텐츠 형식이 "Sales Report"와 동일한 경우에만 결과 유형을 적용합니다. 따라서 when ContentType equals “Sales Report”라는 결과 유형에 대한 조건을 추가합니다.
보시다시피 일치 값을 여러 개 추가할 수 있습니다. 또한 함께 가져올 여러 속성을 추가할 수 있습니다. 이 경우 ContentType만 있으면 됩니다. 조건을 정의한 경우 규칙에 대한 동작을 구성할 수 있습니다. 결과 유형에 대해 동작은 사용 가능한 표시 서식 파일이 모두 포함된 드롭다운일 뿐입니다. 드롭다운에서 판매 보고서 표시 서식 파일을 선택하고 저장 단추를 클릭하면 내 결과 유형이 만들어집니다. 그래도 결과 유형을 만드는 방법을 모를 경우 SharePoint에 기본으로 제공되는 모든 결과 유형을 살펴보십시오. 기존 결과 유형을 보고 새 결과 유형에 대한 많은 유용한 아이디어를 얻을 수 있습니다.
마침
원하는 메타데이터를 캡처하는 사용자 지정 콘텐츠 형식, 추출하여 인덱스에 넣을 몇 가지 관리 속성, "sales report"를 쿼리할 때 판매 보고서 콘텐츠가 목록 위에 표시되도록 하는 쿼리 규칙, 캡처한 메타데이터를 기존 검색 결과와 완전히 다른 고유하고 유용한 형식으로 표시하는 사용자 지정 표시 서식 파일, 사용자 지정 콘텐츠 형식이 검색 결과에 반환될 때 표시 서식 파일이 사용되도록 하는 결과 유형까지 모두 살펴보았습니다.
이로써 검색 결과를 표시하는 데 사용되는 SharePoint 2013의 몇 가지 유용한 기능에 대한 소개를 마치겠습니다. 이러한 기능을 잘 파악하고 유용하게 사용하시기를 바랍니다.
이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Using Query Rules, Result Types and Display Templates for a Custom Search Sales Report in SharePoint 2013을 참조하십시오.