Creating MozSearch plugins

공헌자 숫자: 2명

Firefox 2에서는 검색 플러그 인을 작성하기 위해서 Amazon A9의 OpenSearch포맷을 단순화한 MozSearch를 지원 하고 있습니다. OpenSearch 검색 플러그 인도 물론 지원 되고 있습니다. 자세한 것은 OpenSearch 사이트를 참조해 주세요.

MozSearch 검색 플러그인은 검색 엔진과 URL을 해석하는데 필요한 요소들을 정의한 XML파일입니다.

주의: MozSearch는 Firefox에서만 지원됩니다. 만약 다른 웹 브라우저 호환이 되는 플러그인을 사용하고 싶다면 표준 OpenSearch 포맷을 사용해야 합니다. 두 포맷은 매우 비슷해서 바꾸는 데 큰 문제는 없습니다.

플러그 인 파일

검색 엔진을 설명하는 XML파일은 매우 간단하고 기본적인 템플릿입니다. 이탤릭으로 되어 있는 곳은는 쓰고 있는 검색 엔진의 필요에 따라 바꿀 수 있습니다.

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>engineName</ShortName>
<Description>engineDescription</Description>
<InputEncoding>inputEncoding</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,imageData</Image>
<Url type="text/html" method="method" template="searchURL">
  <Param name="paramName1" value="paramName1"/>
  ...
  <Param name="paramNameN" value="paramValueN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<SearchForm>searchFormURL</SearchForm> 
</SearchPlugin>
ShortName
검색 엔진에 대한 간단한 이름.
Description
검색 엔진에 대한 간단한 설명.
InputEncoding
검색 엔진이 데이터 입력에 사용하는 문자 인코딩 방식.
Image
검색 엔진을 표시하는 Base-64로 인코딩 된 16x16의 아이콘. 이 코드를 작성하는데 사용할 수 있는 편리한 The data: URI kitchen을 사용할 수 있습니다.
Url
검색에 사용한다 한 개 또는 복수의 URL. method 속성은 결과를 얻기 위해서 code>GET</code>과 POST 요청 어느 쪽을 사용하는지 지정합니다.template 속성은 검색 쿼리의 기본이 되는 URL을 지정합니다.
당신이 설정할 수 있는 두 가지 URL 형식이 있습니다:
  • type="text/html"는 실제 검색 결과 그 자체의 URL을 설정하기 위해서 사용됩니다.
  • type="application/x-suggestions+json"는 검색 키워드 자동 완성 기능에 사용되는 URL을 설정하기 위해서 사용됩니다.
어느 쪽의 URL을 사용하던지 사용자가 검색 플러그인에 입력한 검색 키워드로 {searchTerms}을 사용할 수 있습니다.
검색 자동완성 기능의 쿼리로 지정된 URL 템플릿은 JSON 형식으로 제공 되어야 합니다. 서버 상에서 검색 자동완성 기능을 개발하는 것에 대해서는 검색 플러그인에서 자동 완성 지원을 참고하십시오.


Image:SearchSuggestionSample.png

Param
검색 쿼리를 통과 시키기 위해 필요한 키값의 페어 파라미터입니다.이 값을 지정하면 사용자가 검색 바에 입력한 검색 어구를 삽입하기 위한 {searchTerms}을 사용할 수 있습니다.
SearchForm
플러그 인 사이트의 검색 페이지를 열기 위한 URL. 이것은 Firefox에 사용자가 직접 웹 사이트를 방문하는 방법을 제공합니다.

검색 엔진 자동 찾기

검색 플러그 인을 제공하고 있는 웹 사이트는 Firefox 사용자가 플러그 인을 간단하게 다운로드해 인스톨 할 수 있도록 알려 줄 수 있습니다.

자동 찾기를 지원하려면, 웹페이지 <HEAD> 요소에 아래 내용을 추가하면 됩니다.:

<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">

이탤릭의 항목은 아래에서 설명하고 있습니다.:

searchTitle
"MDC에서 검색" 이나 'Yahoo! 검색"과 같이 실행하는 검색의 이름입니다.이 값은, 플러그 인 파일의 ShortName과 일치시킬 필요가 있습니다.
pluginURL
웹 브라우저가 다운로드할 수 있는 XML 검색 플러그 인의 URL 입니다.

만약 당신의 웹 사이트가 다수의 검색 플러그 인을 제공하고 있다면 모두 자동 찾기를 지원하게 할 수 있습니다.예를 들면:

<link rel="search" type="application/opensearchdescription+xml" title="MySite: 저자" href="http://www.mysite.com/mysiteauthor.xml">
<link rel="search" type="application/opensearchdescription+xml" title="MySite: 제목" href="http://www.mysite.com/mysitetitle.xml">

이 방법으로 당신의 사이트는 저자로서 검색과 타이틀로서 검색을 다른 요소로 플러그 인을 제공할 수 있습니다.

예제: Yahoo! 검색

아래 XML 파일은 Yahoo! 검색을 이용하기 위해 Firefox2에 번들된 검색 플러그인 입니다.

 

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Yahoo</ShortName>
<Description>Yahoo Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<SuggestionUrl>http://ff.search.yahoo.com/gossip?output=fxjson&command=</SuggestionUrl>
<Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image>
<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
  <Param name="p" value="{searchTerms}"/>
  <Param name="ei" value="UTF-8"/>
  <Param name="fr" value="moz2"/>
</Url>
<SearchForm>http://search.yahoo.com/</SearchForm>
</SearchPlugin>

만약 사용자가 Yahoo! 검색 엔진 플러그인을 선택해 검색 상자에 'mozilla'라고 입력한 후 엔터키를 누르면 Firefox는 검색 기능을 수행하기 위해 플러그인에서 설명된 방법을 사용합니다.

http://search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2


만약 사용자가 검색 플러그인의 확대경 아이콘을 클릭하면, 웹 사이트로 이동합니다. 도구 메뉴 웹 검색 옵션을 선택하면, 브라우저는 <SearchForm>에 <tt>http://search.yahoo.com/</tt>을 포함 합니다.

예제 MDC 검색

이 플러그 인으로 Mozilla Developer Center의 웹 사이트를 간단하게 검색할 수 있습니다.

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>MDC</ShortName>
<Description>Mozilla Developer Center search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz%2F%2Fz8DJQAggJiQOe%2Ffv2fv7Oz8rays%2FN%2BVkfG%2FiYnJfyD%2F1%2BrVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw%2F8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi%2FG%2BQKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo%2BMXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia%2BCuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq%2FvLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg%2FkdypqCg4H8lUIACnQ%2FSOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD%2BaDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D</Image>
<Url type="text/html" method="GET" template="http://developer.mozilla.org/en/docs/Special:Search?search={searchTerms}"/>
<SearchForm>http://developer.mozilla.org/en/docs/Special:Search</SearchForm> 
</SearchPlugin>


예제에서는 검색 엔진의 파라미터를 정의하기 위해 <Param>는 아니고 단순하게 템플릿 URL을 사용하고 있는 것에 주의해 주십시오. 이것은 실제로 메소드로서 GET을 사용할 때에 적당한 방법입니다. <Param>POST을 위해 사용해야 합니다.

 

문제 해결 방법

만약 당신의 검색 플러그 인 XML 파일에 오류가 있으면 Firefox 2에 플러그 인을 추가할 때에 에러를 나타내게 될 것입니다. 에러 메세지는 완전한 것은 아니지만 문제를 찾는 데 도움이 될 것입니다.

  • 검색 플러그 인이 정형식well formed 인가 확인해 주십시오. 파일을 Firefox에 직접 읽어들이게 하는 것에 의해서 확인할 수 있습니다. 템플릿 URL안의 ampersand(&)(&) 이하 &amp;가 Escape가 된 태그는 마지막의 slash나 일치하는 종료 태그로 닫혀져야 합니다.
  • xmlns 속성은 중요합니다.xmlns 속성 없이는 "Bon Echo could not download the plugin from (URL)"이라는 에러 메시지가 표시됩니다.

또한, 검색 플러그 인 서비스는 플러그 인 개발자가 사용할 로그의 구조를 제공합니다. about:config 의 'browser.search.log'을 true로 해야 합니다. 검색 플러그 인이 추가되면 로그 정보가 Firefox 의오류 정보(도구-> 오류 정보)에 표시됩니다.

OpenSearch

Firefox 2의 검색 결과를 공유하기 위해서 Amazon A9의 OpenSearch 형식되 지원합니다. OpenSearch 사용법을 이용해 XML 플러그인을 제작 했다면 사용자 프로필 또는 어플리케이션 폴더, 설치 번들 안의 <tt>searchengines</tt> 디렉토리에 넣어 줌으로서 검색엔진을 추가할 수 있습니다

OpenSearch 파일은검색 엔진 자동 찾기에 설명한 방법을 통해 표시할 수 있습니다.

OpenSearch 형식은 Mozilla SearchPlugin 형식과 닮아 있으나 가장 큰 차이는 루트 요소와 XML 네임 스페이스가 다른 것입니다.

<?xml version="1.0"  encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
...
</OpenSearchDescription>

참고 자료

플러그 인의 작성. 작성된 검색 플러그 목록

문서 태그 및 공헌자

태그: 
Contributors to this page: teoli, Channy
최종 변경: teoli,