Partager via


SharePoint 2013에서 쿼리 규칙을 사용하여 콘텐츠 검색에 사용자 메타데이터 통합

최초 문서 게시일: 2012년 8월 20일 월요일

게시물 제목이 좀 길죠? 이게 무슨 뜻이냐고요? 제가 며칠 전에 질문을 하나 받았는데요. 조직에 영업부, 총무부 등의 여러 부서가 있는데 직원 한 명이 "영업 관리 계획"이라는 쿼리를 입력하면 영업부 소속의 다른 직원들도 해당 쿼리를 볼 수 있도록 하는 방법이 없느냐는 것이었죠. SharePoint 2013에서 새롭게 제공되는 쿼리 규칙 기능을 사용하면 이러한 작업이 가능합니다.

먼저 여기서 수행하려는 작업을 가능하게 하는 관련 기능에 대해 설명하겠습니다. SharePoint 2013에서는 Active Directory에서 프로필 가져오기를 수행하면 Managed Metadata Service의 특수 용어 집합이 자동으로 채워집니다. 이때 실제로는 "사용자"라는 마스터 그룹이 만들어지고 세 개의 용어 집합(부서, 직함, 위치)이 채워집니다. 참고: 정식 제품이 출시될 때 이 세 용어 집합이 모두 포함될지는 확실치 않습니다. 셋 중 두 개만 포함될 수도 있겠네요. 프로필 가져오기 프로세스 중에 각 용어 집합에는 이러한 각 속성에 대한 모든 사용자의 고유 값이 채워집니다. 따라서 위에서 언급한 문제를 해결하는 데 큰 도움이 됩니다. 아래 그림에 나와 있는 것처럼, MMS에서 부서 목록을 표시하면 "영업(Sales)"이 포함되어 있습니다. AD에서 사용자의 부서(Department) 특성에 영업(Sales) 값을 지정했기 때문입니다.

그러면 이제 쿼리 규칙을 만들어 볼까요? 쿼리 규칙에 대한 첫 번째 게시물(https://blogs.msdn.com/b/sharepoint_ko/archive/2012/09/20/sharepoint-2013-using-query-rules-result.aspx)에서 설명한 것처럼, 우선 규칙을 실행할 조건을 설정해야 합니다. 여기서는 고급 쿼리 텍스트 일치(Advanced Query Text Match) 옵션을 사용하며, 마지막 선택 항목인 '쿼리에 이 사전의 항목 포함(Query contains an entry in this dictionary)'을 선택합니다 . 이 옵션에는 드롭다운 선택기가 있어서 약간 혼동할 수 있는데요. 실제로는 그 바로 아래에 있는 '분류에서 가져오기(Import from taxonomy)'를 클릭해야 합니다 . 그러면 표준 MMS 선택기가 표시되는데, 여기서는 조직에서 부서 이름인 단어가 쿼리 텍스트에 포함되어 있으면 규칙을 실행할 것이므로 로컬 MMS 인스턴스를 확장하여 부서(Department) 용어 집합을 선택합니다.

규칙의 다음 부분에서는 쿼리 용어를 찾는 방법에 해당하는 확인란 세 개를 모두 선택합니다. 그러면 전체 쿼리가 부서 이름과 일치하거나, 쿼리가 부서 이름으로 시작하거나 끝나면 규칙이 실행됩니다. 그리고 규칙 구성의 마지막 부분에서는 일치하는 항목이 있는 경우 해당 항목을 {subjectTerms}에 할당하고 나머지 항목은 {actionTerms}에 할당하도록 선택합니다. 즉, 위에서 언급한 "영업 관리 계획" 예제를 검색하는 경우 쿼리 용어가 MMS의 유효한 부서 값인 "영업"으로 시작하기 때문에 쿼리 규칙이 일치하며, "영업"은 {subjectTerms}가 되고 "관리 계획"은 {actionTerms}가 됩니다. 아래 그림에 해당 구성이 나와 있습니다.

이제 규칙이 실행될 때 영업부 직원을 쿼리 결과 맨 위에 추가하려고 합니다. 이렇게 하려면 쿼리 규칙의 다음 부분인 작업을 사용합니다. 결과 블록 추가 링크를 클릭하면 해당 대화 상자가 표시됩니다. 여기서는 사용자 결과를 표시할 결과 블록을 추가할 것이므로, 먼저 "이 원본 검색" 드롭다운을 클릭하고 옵션을 "쿼리의 원본"에서 "로컬 사용자 결과(시스템)"로 변경합니다 . 이 작업을 먼저 수행하는 이유는 쿼리를 수정하여 테스트할 때 쿼리 작성기가 해당 원본을 사용하도록 하기 위해서입니다. 이 작업을 완료하면 일치하는 규칙을 기준으로 검색되는 부서가 특수 용어인 "{subjectTerms}"에 포함됩니다 . 해당 원본을 사용하려면 쿼리를 수정할 수 있도록 "쿼리 작성기시작" 단추를 클릭합니다 . 그런 다음 쿼리 텍스트 편집 영역에 있는 기존 텍스트를 삭제하고 속성 필터(Property filter) 드롭다운을 클릭하여 --모든 관리 속성 표시-- 옵션을 클릭합니다 . 그러면 드롭다운에 모든 관리 속성이 채워지며, 이 목록에서 부서(Department)를 선택합니다 . 한정자 드롭다운에서는 옵션을 "포함"에서 "같음(Equals)"으로 변경하고, 값 선택 드롭다운에서는 {subjectTerms} - 부서의 일치하는 사전 항목({subjectTerms} – the matched dictionary entry from Department)을 선택한 후에 속성 필터 추가(Add property filter) 단추를 클릭합니다 . 아래 그림에 각 옵션이 선택된 화면이 나와 있습니다. 

이제 쿼리가 적절하게 구성되었으므로 약간의 개인 설정을 해 보겠습니다. 이렇게 하려면 쿼리 작성기에서 정렬(Sorting) 탭을 클릭합니다. 여기서는 기본 정렬 모델만 사용하는 대신, 사용자를 사회적 거리 기준으로 정렬하여 표시하려고 합니다. 즉, 사용자를 결과에 표시하는 것만이 아니라 사용자 목록을 사회적 거리가 가장 가까운 순서대로 정렬할 것입니다. 이러한 정렬을 적용하려면 순위 모델(Ranking Model) 드롭다운에서 다음과 같이 사용자 검색 사회적 거리 모델(People Search Social Distance Model)을 선택합니다 .

이제 테스트(Test) 탭을 클릭하여 새 쿼리를 실행해 볼 수 있습니다. 아직 {subjectTerms} 변수에 대한 값이 없기 때문에 현재는 기본적으로 아무런 결과도 표시되지 않습니다. 실제 쿼리 기준을 사용하여 쿼리를 테스트하려면 자세히 표시(Show More) 링크를 클릭하고 {subjectTerms}*: 편집 상자에 '영업'을 입력한 후에 쿼리 테스트 단추를 클릭합니다. 다양한 쿼리 모델에 대해 이 테스트를 수행하여 쿼리가 정상적으로 작동하는지 확인할 것이므로, 확인 단추를 클릭하여 쿼리 변경 내용을 저장합니다.

쿼리 규칙에 대해 마지막으로 수행할 작업은 사용자가 클릭하여 검색된 부서에서 근무하는 모든 직원을 찾을 수 있는 링크를 블록 맨 아래에 표시하는 것입니다. 이 작업을 진행하기 전에 한 가지 사항을 먼저 설명하겠습니다. 아래쪽에서 제공할 최종 결과 그림에는 자세히 표시(SHOW MORE) 링크가 포함되어 있습니다. 이 게시물에서는 두 가지 버전의 그림이 사용되는데, 한 버전에는 "자세히 표시(SHOW MORE)" 링크가 있고 다른 한 버전에는 해당 링크가 없습니다. 이처럼 두 가지 그림을 사용하는 이유는, 베타 2의 경우 "자세히 표시(SHOW MORE)" 링크 작동 방식에 일관성이 없기 때문입니다. RTM에서는 문제가 해결되겠지만, 현재로서는 해당 링크가 표시되지 않는 경우가 더 많습니다. 이 게시물에서는 해당 링크가 포함된 이전 결과 집합의 스크린샷도 사용하게 되었네요. 베타 2에서 작업을 수행하는 사용자가 있는 경우 혼란을 방지하고 해당 링크가 표시될 때도 있고 그렇지 않을 때도 있다는 점을 알려 드리기 위해 여기서 해당 사항을 미리 언급하고 넘어가겠습니다.

그러면 이제 위의 단락에서 설명한 기능을 구현하겠습니다. "자세히(More)" 링크 옵션을 선택하여 다음 URL로 이동한 후에 peopleresults.aspx?k=Department:{subjectTerms}를 입력합니다 . 여기서는 일치하는 항목을 3개 표시할 것이며, 위에서 설명한 것처럼 모든 검색 결과 맨 위에 표시하겠습니다. 이러한 설정이 완료된 결과 블록(Result Block) 대화 상자는 다음과 같습니다.

이제 쿼리가 완성되었으므로 테스트를 수행할 수 있습니다. "영업 관리 계획(sales management pitch)"을 쿼리하면 결과가 다음과 같이 표시됩니다.

보시다시피 이 스크린샷에는 "자세히 표시(SHOW MORE)" 링크가 있습니다. 검색 결과 맨 위에는 Rocky가 표시되는데 이는 제가 조직에서 Rocky의 관리자이기 때문이며, 따라서 사회적 거리 순위 알고리즘이 작동한다는 것을 확인할 수 있습니다. 결과에 표시된 사용자를 마우스로 가리키면 해당 사용자들이 최근에 게시한 문서 목록이 표시됩니다.

마지막으로, "자세히 표시(SHOW MORE)" 링크를 클릭하면 사용자 검색 결과 페이지로 이동하며 영업부 소속의 모든 직원이 표시됩니다. 여기서 직원 중 한 사람을 마우스로 가리키면 해당 직원의 업무와 프로필 페이지 등을 볼 수 있습니다.

이것으로 연습을 마치겠습니다. 이 연습에서는 실제적인 고객의 요구 사항을 반영했으며, SharePoint 2013의 새로운 쿼리 규칙 및 프로필 가져오기 기능을 사용함으로써 코드를 전혀 작성하지 않아도 되는 솔루션을 만들어 다양한 기능을 제공하는 방법을 살펴보았습니다. 여러분도 쿼리 규칙을 계속 살펴보고 직접 사용해 보시기 바랍니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Integrating People Metadata In Content Searches Using Query Rules in SharePoint 2013을 참조하십시오.