OpenSearch描述文档XML怎么写

OpenSearch 描述文档是声明 Web 搜索服务的 XML 文件,需以 UTF-8 编码,根元素为 ,含 ShortName、Description、Url(含 {searchTerms} 占位符)等必需字段,并通过 HTML 标签声明以便浏览器发现。

OpenSearch 描述文档(OpenSearch Description Document)是一个 XML 文件,用于向客户端(如浏览器、搜索工具)声明一个可被发现和使用的搜索服务。它不是 OpenSearch(AWS 或开源搜索引擎)的配置文件,而是 Web 搜索插件标准(由 Mozilla 和 Microsoft 等早期推动)的规范。 以下是编写 OpenSearch 描述文档 XML 的核心要点和示例:

基本结构与必需字段

XML 必须以 UTF-8 编码,根元素为 ,并声明命名空间:
xmlns="http://a9.com/-/spec/opensearch/1.1/"
必需子元素包括:

  • ShortName:≤16 字符的简短名称(如 “MySite Search”)
  • Description:≤1024 字符的说明(如 “Search articles on MySite”)
  • Url:含 typetemplate 属性的搜索端点,rel="search" 表示默认搜索;支持 {searchTerms} 占位符

Url 元素写法与参数支持

是关键部分,常见写法如下:

  • GET 请求(最常用):
  • 支持多个参数(用 & 连接):
    template="https://example.com/s?k={searchTerms}&lang=zh&format=json"
  • 支持可选占位符:{searchTerms}(必填)、{language}{inputEncoding}{outputEncoding}
  • 若需 POST 请求,设 method="post",但多数浏览器仅支持 GET

可选但推荐的增强字段

提升兼容性与体验,建议补充:

  • Image:16×16 或 64×64 PNG 或 ICO 图标(用于地址栏显示)
    https://example.com/favicon.ico
  • InputEncodingOutputEncoding:明确声明编码(通常为 UTF-8)
  • Tags:空格分隔的关键词(如 search site example
  • DeveloperContactAttribution:归属信息(非强制)

完整示例(可直接保存为 opensearch.xml



  MyBlog Search
  Search posts and tutorials on MyBlog
  blog tutorial dev
  admin@myblog.com
  
  UTF-8
  UTF-8
  
    https://myblog.com/favicon.ico
  

注意:该 XML 需通过 HTTP 可公开访问(如 https://example.com/opensearch.xml),并在网站 HTML 的 中用 声明,浏览器才能自动发现。 不复杂但容易忽略编码声明和 Url template 中的 {searchTerms} 占位符格式。