zoukankan      html  css  js  c++  java
  • Search Bar On Browser_3

    三、MozSearch标准

    参见:http://developer.mozilla.org/en/docs/Supporting_search_suggestions_in_search_plugins

    1.       Supporting search suggestions in search plugins

    MozSearch支持搜索提示,当用户在搜索栏中输入信息时,Firefox 2中搜索引擎插件会指定URL区获取实时的搜索提示。

    一旦这个匹配的列表找到后,会在搜索栏下弹出栏中显示,可以让用户选择一个合适的查询术语。如果用户继续输入,新的提示请求搜索引擎,显示的列表重新刷新。

     

    YahooGoogle的搜索引擎包括Firefox 2 支持的查询提示。

     

    2.       Implementing suggestion support in the search plugin

    为了支持查询提示,一个搜索引擎需要定义一个额外的<url>元素来和类型设置为"application/x-suggestions+json"一致。这就意味着支持提示的引擎插件有2<url>元素,另外一个是主要的text/html类型的查询URL

     

    例如,Yahoo的搜索引擎有这样的<url>入口:

    <Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>

    如果用户在查询栏中输入”fir”,然后暂停,Firefox将用”fir”代替{searchTerms}并查询这样的URL

    <Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>

    查询结果用于构造提示列表

    参见Creating MozSearch plugins获取更多关于如何执行一个搜索引擎。

     

    3.       Implementing search suggestion support on the server

    处理搜索提示的主要工作实际上是在服务器上执行。如果你是一个网站设计者,并且想支持搜索提示,你需要为获取一个查询条件从JavaScript Object Notation(JSON)返回提示。

     

    当浏览器想要获取可能对应的搜索术语,之后通过<url>元素发送一个Http GET请求给URL

     

    你的服务端取决于提供的建议,组成一个JSON包括至少2个至多4个元素。

     

    4.       Query String

    JSON中的第一元素是原始的查询字符串。这个允许Firefox来验证提示是否对应现在的查询术语。

     

    5.       Completion list

    一个提示查询术语的数组。这个数组加上方括号。例如["term 1", "term 2", "term 3", "term 4"]

     

    6.       Descriptions

    这个可选元素是一个完成列表中每个提示信息描述的数组。还有搜索引擎额外的信息能够返回在浏览器上显示,比如这个可用搜索结果的数量。

     

    注意,Description不支持Firefox 2,任何指定会被忽略。

     

    7.       Query URLs

    这个可选元素是一个在完成列表中为每个提示的一组交替的URLs。例如,如果你想提供一个地图链接来代替一个给定提示的查询结果页,你可以在这个数组中返回一个指向此地图的URL

     

    如果你不指定查询的URL,默认的查询是使用基于查询描述,这个查询描述是在搜索插件的XML描述中的<url>元素。

     

    注意,查询URLs不支持Firefox 2,并会被忽略。

     

    比如,如果查询关键字为”fir”,你不需要返回描述或是查询的URLs,你可以返回下面的JSON

    ["fir", ["firefox", "first choice", "mozilla firefox"]]

    注意在这个例子中,只有查询字符串和完成的数据能够被指定,可选的元素不予考虑。

     

    你的完整列表能包括你所喜欢的很多提示,虽然这些提示易于管理,但是当用户输入他们的查询字符串时能动态更新的显示。另外,你用于选择提示的方法是完全取决于你的。

     

    8.       Creating MozSearch plugins

    1Example: searching Yahoo!

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

    如果使用这个Yahoo!Search搜索插件,输入”mozilla”到查询框中,则查询对应的URL如下:

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

    输入的值对应为{searchTerms},直接跳转到URLhttp://search.yahoo.com/search

     

     

    2Example: searching MDC

    This plugin lets you easily search the Mozilla Developer Center web site.

    <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方法。


    12 使用MozSearch查询时的提示

    OscarXie.net

    关注质量与体验——电子商务与自动化测试
    http://www.cnblogs.com/oscarxie/

  • 相关阅读:
    python 3.8获取当前时间
    .Net Core WebApi 添加Swagger和Redis缓存
    缓存一【微软自带的类库System.Web.Caching】
    rabbitMQ安装运行
    layui添加阿里巴巴图标库
    github无法访问,链接超时解决办法
    Layui + zTree注意事项
    EFCore CodeFirst需要引用的包
    python练习题【杭州多测师】【杭州多测师_王sir】
    mysql数据库题目【多测师_王sir】【杭州多测师】
  • 原文地址:https://www.cnblogs.com/oscarxie/p/588800.html
Copyright © 2011-2022 走看看