Windows 페더레이션 검색에서 데이터 저장소 사용

OpenSearch 웹 서비스에서 데이터 저장소에 액세스할 수 있도록 설정하는 방법과 잠재적인 장벽을 방지하는 방법을 설명합니다.

이 항목은 다음과 같이 구성됩니다.

검색 요청 수락 조건

웹 서버에서 만드는 OpenSearch 웹 서비스는 다음 두 가지 요구 사항을 충족 해야 합니다 .

  • 클라이언트에서 쿼리를 GET URL 수락할 수 있어야 합니다.

  • URL에 검색어를 포함하도록 허용합니다.

    다음 예제에서는 URL에 검색어를 포함할 수 있는 방법을 보여 주는 예제입니다.

    https://example.com/search.aspx?query=terms&param=mysearchword
    

참고

페더레이션된 검색은 웹 서비스에 요청을 보내는 POST 것을 지원하지 않습니다.

 

URL 생성에 대한 자세한 내용은 Windows 페더레이션 검색에서 OpenSearch 설명 파일 만들기의 "URL 템플릿 매개 변수"를 참조하세요.

지원되는 쿼리 구문

Windows 7에는 특정 쿼리 구문이 필요하지 않습니다. OpenSearch 공급자는 사용자가 Windows Explorer 입력 상자에 입력한 용어를 허용하고 URL로 인코딩합니다. Windows 페더레이션 검색에서 OpenSearch 설명 파일 만들기의 "URL 템플릿 매개 변수"에 설명된 URL 템플릿에 따라 수행됩니다.

사용자는 별도의 용어가 암시적으로 함께 ANDed로 처리될 것으로 예상합니다. 예를 들어 "Microsoft Windows"에 대한 쿼리는 "Windows" 및 "Microsoft"를 모두 포함하는 결과만 반환해야 합니다.

지원되는 인증 프로토콜

Windows Federated Search는 Windows 기반 인증을 지원하며 다음 프로토콜을 통해 웹 서비스에 자격 증명을 제공할 수 있습니다.

  • NTLM.
  • Kerberos.
  • 기본(https를 통해서만).
  • 추가 쿼리 용량을 제공하는 Windows에 설치된 기타 SSP(보안 지원 공급자)입니다. 다른 SSP의 잠재적 추가 가능성을 계속 유지하려면 SSP 인터페이스 SDK 설명서를 참조하세요.

RSS 또는 Atom에서 쿼리 보내기 및 검색 결과 반환

OpenSearch 공급자는 WINDOWS 애플리케이션에서 사용할 수 있는 Windows Shell 시스템 속성에 XML 요소 값을 매핑하는 역할을 담당합니다. 그러나 표준 RSS 또는 Atom 요소의 기본 매핑으로 제한되지 않으며 각 속성에 대한 사용자 지정 XML 요소를 Windows 네임스페이스에 포함할 수 있습니다. 예를 들어 항목 요소 내에 사용자 지정 XML 요소를 추가하여 Windows에 추가 메타데이터를 제공할 수 있습니다. iTunes와 같은 다른 XML 네임스페이스의 요소를 매핑할 수도 있습니다.

RSS 피드 출력의 예

다음 예제 RSS 피드 출력은 하나의 항목을 반환합니다.

<rss version="2.0" xmlns:media="https://search.yahoo.com/mrss/" xmlns:example="https://example.com/namespace">
   <channel>
      <title>Search Results</title>
      <item>
         <title>An example result</title>
         <link>https://example.com/pictures.aspx?id=01</link>
         <description>This is a test of the emergency search results system. If this were a real emergency result, you'd be reading something more useful.</description>
         <pubDate>Wed, 1 Oct 2008 23:12:00 GMT</pubDate>
         <media:content url="https://example.com/pictures/picture01.jpg" fileSize="212889" type="image/jpeg" height="768" width="1024"/>
         <media:thumbnail url="https://example.com/thumbnails/picture01.jpg" height="120" width="160"/>
         <example:dateTaken>Mon, 22 Sep 2008 23:12:00 GMT</example:dateTaken>
      </item>
   </channel>
</rss>

속성 매핑에 대한 자세한 내용은 Windows 페더레이션 검색에서 OpenSearch 설명 파일 만들기의 "WIndows Federated Search의 확장 요소" 및 "사용자 지정 속성 매핑" 섹션을 참조하세요.

Windows 셸 속성에 대한 자동 매핑

RSS 피드의 항목 내에서 Windows Shell 시스템 속성에 자동으로 매핑되는 다른 XML 요소를 포함하도록 선택할 수 있습니다. 이렇게 하려면 Windows Shell 속성의 이름을 따서 명명되고 Windows Shell 시스템 네임스페이스가 접두사로 지정된 요소를 포함합니다. 다음 예제에서는 네임스페이스 선언 win=" http://schemas.microsoft.com/windows/2008/propertynamespace" 및 속성 매핑 win:System.Contact.PrimaryEmailAddress에 대한 요소 포함을 보여 줍니다.

<rss version="2.0" xmlns:example="https://example.com/schema/2009" xmlns:win="http://schemas.microsoft.com/windows/2008/propertynamespace">
...
   <item>
      <title>Someone</title>
      <win:System.Contact.PrimaryEmailAddress>someone@example.com
   </win:System.Contact.PrimaryEmailAddress>
   </item>

여기서 사용되는 네임스페이스 접두사("win")는 제안 사항입니다. 접두사를 사용할 수 있습니다. 그러나 정확한 Windows Shell 속성 이름을 사용해야 하며, 다음 예제와 같이 정확한 URI(Uniform Resource Identifier)를 포함해야 합니다.

http://schemas.microsoft.com/windows/2008/propertynamespace

Windows Shell 시스템 속성 정보

Windows는 시스템 속성 의 전체 목록과 각 속성에 필요한 값 형식 형식을 정의합니다. 예를 들어 System.FileExtension Window Shell 속성에 대한 설명서에서는 값에 선행 점("docx"가 아닌 ".docx")이 포함되어야 한다고 지정합니다.

날짜 및 시간 값

다음 예제와 같이 기본 설정 날짜 및 시간 형식은 ISO-8601입니다.

2008-01-16T 19:20:30:.45+01:00

.NET 개발자는 DateTime 클래스를 와 함께 ToString("R") 사용하여 올바른 형식을 출력해야 합니다.

속성 매핑에 대한 자세한 내용은 Windows 페더레이션 검색에서 OpenSearch 설명 파일 만들기의 "Windows 페더레이션 검색의 확장 요소"를 참조하세요.

항목을 파일 형식에 Windows 지도 방법 이해

Windows Explorer UI 내에서 검색하면 RSS 항목이 원격으로 저장된 파일을 가리키는 경우 사용자가 결과를 파일로 처리할 수 있습니다. 사용자는 항목을 바탕 화면으로 끌어서 놓을 수 있으며 Windows Explorer UI는 올바른 아이콘을 표시하고 적절한 바로 가기 메뉴를 제공합니다. RSS 항목이 원격으로 저장된 파일을 가리키지 않으면 파일이 링크로 처리되고 사용자가 바로 가기를 만들거나 브라우저에서 여는 등의 작업을 수행할 수 있습니다.

다음 순서도는 Windows에서 항목의 파일 형식을 결정하는 방법을 보여 줍니다.

항목에서 웹 링크 형식 항목 또는 파일 형식으로 처리하는 의사 결정까지의 경로를 보여 주는 순서도

OpenSearch 공급자는 다음 단계를 수행하여 항목을 파일 형식에 매핑합니다.

  • 항목을 파일 또는 웹 링크로 처리해야 하는지 여부를 식별합니다.
  • 사용할 올바른 파일 이름 확장명을 식별합니다.

예를 들어 항목에 파일 시스템 경로(예: file:///\\server\share\etc\item.ext)를 사용하는 링크 URL이 있는 경우 OpenSearch 공급자는 링크를 파일로 처리하고 경로에 사용된 파일 이름 확장명(이 예제에서는 .ext)으로 형식을 결정합니다.

항목이 표준 RSS 엔클로저 또는 MediaRSS media:content 요소를 사용하는 경우 OpenSearch 공급자는 항목이 파일이라고 가정하고 다음과 같이 파일 이름 확장명을 식별합니다.

  • System.FileExtension Windows Shell 속성이 항목에 대해 매핑된 경우 공급자는 해당 파일 이름 확장명을 사용합니다.
  • System.FileExtension Windows Shell 속성이 매핑되지 않은 경우 공급자는 엔클로저 또는 콘텐츠 요소에 지정된 Type 특성을 사용합니다. 이 요소에는 와 같은 "image/jpeg"문자열이 MIMEType 포함되어야 합니다. MIMEType 가 클라이언트 컴퓨터에 등록된 파일 이름 확장명과 연결된 경우 항목은 해당 형식의 파일로 간주됩니다. MIMEType 가 클라이언트 컴퓨터에 등록된 파일 이름 확장명과 연결되지 않은 경우 항목은 웹 링크 형식으로 처리됩니다. OpenSearch 공급자는 Url 특성을 구문 분석하여 파일 이름 확장명을 찾지 않습니다.
  • MIMEType 가 클라이언트 컴퓨터에 등록된 파일 이름 확장명과 연결된 경우 공급자는 파일 이름 확장자가 알려진 웹 파일 형식(.htm, .html, .asp, .aspx, .php, .swf, .stm)인지 여부를 결정합니다. 이 경우 파일 형식은 웹 링크 형식으로 간주됩니다. 그렇지 않으면 파일 형식으로 간주됩니다. 예를 들어 가 MIMEType "text/html" .htm 파일 이름 확장명과 연결된 경우 해당 항목은 .htm 파일 형식이 아닌 웹 링크로 간주됩니다.

데이터 저장소를 사용하도록 설정할 수 있는 잠재적 장벽 방지

일부 데이터 저장소는 OpenSearch 호환 웹 서비스를 제공하지 않지만 Windows 페더레이션 검색에 계속 연결할 수 있습니다. 이러한 데이터 저장소는 다음과 같습니다.

  • Windows 7 페더레이션 검색에서 지원되지 않는 인증 방법을 사용하는 원격 인덱스입니다.

    예를 들어 양식 기반 인증 및 기타 사용자 지정 인증 방법이 있습니다.

  • 고가의 퍼블릭 저장소에 공용 웹 API가 있는 경우 누구나 OpenSearch와 호환되는 다른 웹 서비스를 작성하고 백그라운드에서 해당 API를 호출할 수 있습니다.

    예를 들어 의회 도서관과 의학 연구 데이터베이스가 있습니다.

  • 독점 엔터프라이즈 데이터 저장소 또는 인덱스 및 레거시 콘텐츠 관리 저장소는 프런트 엔드를 구현하는 것이 불가능할 수 있습니다.

그러나 데이터 저장소를 사용하도록 설정하는 장벽을 방지할 수 있는 대안이 있습니다. 이러한 대안은 다음과 같습니다.

기존 데이터 원본에 대한 웹 서비스를 수정할 수 없거나 웹 서비스가 사용자 지정 API를 제공하는 경우 중간 사용자 웹 서비스를 작성하려면 다음을 수행합니다.

  1. Windows 7 쿼리를 수락할 수 있는 중간 사용자 웹 서비스를 작성합니다.
  2. 데이터 원본에 연결하고 쿼리 결과를 검색합니다.
  3. 결과를 RSS 또는 Atom 형식으로 다시 포맷합니다.
  4. Windows 7 클라이언트에 결과를 반환합니다.
  5. 엔터프라이즈 데이터 서비스 및 많은 인터넷 데이터 서비스의 경우 사용자의 권한에 따라 결과 트리밍을 수행하려면 웹 서비스를 대신하여 사용자 자격 증명을 전달해야 할 수 있습니다.

공용 데이터 저장소를 사용하도록 설정할 수 없는 경우 기존 검색 엔진을 사용하려면 다음을 수행합니다.

  1. RSS에서 OpenSearch 를 이미 지원하는 공용 검색 엔진을 사용합니다. 이렇게 하려면 특정 도메인에 대한 결과로만 결과를 제한하는 URL 템플릿이 있는 .osdx 파일을 사용자에게 제공합니다.

  2. live.com 대한 쿼리를 사용하여 Windows용 도움말 콘텐츠만 검색하려면 OpenSearch 설명의 다음 예제를 참조하세요.

    <?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="https://a9.com/-/spec/opensearch/1.1/">
      <ShortName>Windows Help</ShortName>
      <Description>Search Windows Help using the live.com search engine</Description>
      <Language></Language>
      <Url type="text/html" template="https://windowshelp.microsoft.com/windows/search.aspx?=&amp;qu={searchTerms}"/>
      <Url type="application/rss+xml" template="https://api.search.live.com/rss.aspx?source=web&amp;query={searchTerms} site:windowshelp.microsoft.com&amp;web.count=50"/>
    </OpenSearchDescription>
    

독점 엔터프라이즈 데이터 저장소 또는 인덱스를 사용하도록 설정할 수 없는 경우 OpenSearch를 지원하는 기존 인덱싱 서버를 사용하려면 다음을 수행합니다.

  1. OpenSearch를 지원하는 기존 인덱싱 서버를 선택하여 SharePoint Search 서버와 같은 콘텐츠를 인덱싱합니다.
  2. URL 템플릿 내에서 KeyWord 구문을 사용하여 SharePoint 인덱스의 결과를 서버의 결과로만 제한하는 .osdx 파일을 만듭니다.

서버 쪽 전용 솔루션이 작동하지 않는 경우 클라이언트 쪽 데이터 저장소를 작성하려면 다음을 수행합니다.

  1. Windows OpenSearch 공급자와 외부 데이터 원본 사이에 있는 클라이언트 쪽 OpenSearch 데이터 원본을 작성합니다.
  2. Windows SDK에서 IOpenSearchSource 인터페이스 API를 사용하여 Windows Explorer 쿼리 매개 변수를 사용하여 구현을 호출할 수 있는 적절하게 구성된 .searchconnector-ms 파일을 만듭니다. 그러면 구현에서 RSS 또는 Atom 형식으로 서식이 지정된 결과를 반환할 수 있습니다. 이렇게 하면 구현에서 사용자 지정 인증 UI를 제공하고 전용 API를 사용하여 데이터 원본에 연결할 수 있습니다.

참고

.osdx 파일을 열면 %userprofile%/search 디렉터리에 .searchconnector-ms 파일(검색 커넥터)이 만들어지고 링크가 %userprofile%/links 디렉터리에 배치됩니다.

 

추가 리소스

Windows 7 이상에서 OpenSearch 기술을 사용하여 원격 데이터 저장소에 대한 검색 페더레이션을 구현하는 방법에 대한 자세한 내용은 Windows의 페더레이션 검색에서 "추가 리소스"를 참조하세요.

Windows에서 페더레이션된 검색

Windows에서 페더레이션 검색을 사용하여 시작

Windows 페더레이션 검색에서 웹 서비스 연결

Windows 페더레이션 검색에서 OpenSearch 설명 파일 만들기

Windows 페더레이션 검색 모범 사례

Windows 페더레이션 검색에서 검색 커넥터 배포