Search Service: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(rfe bugs, post method. need summary for opensearch)
m (Reverted edit of Qwmklqi, changed back to last version by RyanJones)
 
(22 intermediate revisions by 10 users not shown)
Line 1: Line 1:
= Background =
''Please comment in the Talk page (use the Discussion tab above)''


Firefox has several "internet search" functions, each distinct. This confuses users, adds to the QA and maintenance burden, and makes it difficult for us to focus on one single source of search for marketing and documentation purposes.
Tracked by: [https://bugzilla.mozilla.org/show_bug.cgi?id=317107 bug 317107]


The main sources of confusion are:
= Goals & Objectives =


* The Search Box (Sherlock Plugins)
To create the simplest, most efficient search experience for users. Adapt to the user's search needs, rather than forcing a particular view of search on them.
* Bookmarks Keywords


There are others ("Web Search for" context menu, keyword URL, etc, but these are less important since their uses are more distinct).
Create a simple, flexible system that unifies all search back ends, presents a common management infrastructure, makes adding keywords easy and more obvious, allows for engines to be added and removed easily when upgrading and allows for simple configuration for business needs.


We are also carrying a large amount of code around in the Internet Search Service that is no longer used.
== Planned Milestones ==
=== Firefox 2 Alpha 1 ===
*Functionally equivalent JS-implemented search backend (nsISearchService)
*Seamless search plugin migration


= A New Internet Search Service =
=== Firefox 2 Alpha 2 ===
*Search plugin updating system
*Bookmarks keywords migration
*UI Changes and refinements (engine ordering/management UI)
*Search auto-detection
*Web addition API


A new Internet Search Service can be implemented offering:
= Overview =


* a single collection of search engines (1)
# Improve the general usability of front line search in Firefox: the search bar.
* a single update mechanism
# Provide a consolidated search engine management system for the entire application that is easily updateable, trackable, and more usable for users.
* an API for obtaining "sanitized search URLs" based on constraints. Constraints include "obtain a URL for engine X, given that Y is default and X is #3 in an ordered list" - this can then be connected to the URL bar and Bookmarks, as required.
# Utilize parseable formats to store engine metadata.
# Improve search engine discovery and addition user experience.  


I am not convinced we want to continue to use Sherlock files. Sherlock is largely a Mac thing, and it is not clear that Apple will continue to support it moving forward. I think it is worth considering using a different, XML or RDF system for storing search metadata on the web. This would allow us to reduce our code size. The customizable search function in Firefox 1.0 was obscure/not-discoverable enough to allow me to say with relative comfort that we do not need to necessarily migrate custom engines over. A new format or an extended Sherlock format may also provide us with the ability to add dynamic fields, such as a timestamp.
== Background ==


* POST method search
=== Basic Issues ===
The current search box depends totally on the search URL, which is specialized to GET method. In order to search via POST method, the browser side should controll the request (= channel) and display the result. I think, eventually, the backend will be simply a search engine file parser and its management (update etc.) tool.
= User Interface =  


== Search Engine Manager ==
There are a couple of basic usability issues with the Firefox search box: it is not necessarily obvious to an IE user what it does (aside from the search engine logo) and how to use it, and it is often too narrow for the sort of queries that users type in.


The UI would remain largely as it is today but with "Add Engines..." being replaced by a "Customize..." link which would open a search engine manager. This would be a very simple UI with a list of installed engines, [maybe the ability to reorder them], and maybe a remote list of available engines from UMO.
=== Keywords ===


== Installation ==
The Smart Keyword feature is basically undiscoverable, despite its extreme utility.


From one of several access points including:
The default Smart Keywords should be revised to include shorter variants (limited to one or two characters, e.g., 'g' for Google) and much more numerous (Ebay, Amazon). Furthermore, Smart Keywords should be promoted as a prominent feature with the search toolbar being deprecated to non-default status.


* the web, via the .addEngine API
=== Back Ends ===
* the remote engine list in the Customize UI
* the "Add Keyword for Search" context menu item capturing updates.


* Better UI on failure.
Firefox 1.0 and 1.5 feature several different systems for performing internet searches:


== Searching ==
* The Search toolbar field, which includes an engine selector and the mechanism for adding more searches. This is powered by Sherlock .src files and uses the Internet Search Service.
* The Bookmark "Smart" Keyword feature, which allows you to create bookmarks with parameterized sections, so that the user can then type "kw search_term" in the location bar and be taken to the resulting page.
* The "Search Web For 'selected terms'" context menu item, which uses a preference to source its query URL.
* The "DNS Failed" search URL, which searches for the text typed in the location bar when DNS lookup fails. Uses a preference to source its query URL. In Firefox 1.0 and 1.5, this does a Google "I'm Feeling Lucky" search by default.
     
These individual solutions have their pros and cons. The toolbar is useful but has some peripheral usability bugs, the search plugins are stored in the application directory and there is no easy way for the user to manage the engines they have installed.
   
All of these search systems use different back ends making them difficult to configure when engine queries or parameters change, and configuration for business reasons is somewhat tricky. Adding new engines with subsequent releases is somewhat simple though, since each engine that shows up in the toolbar menu is a separate file.


* From the Search Box, using Ctrl+Up/Dn to cycle (but see [https://bugzilla.mozilla.org/show_bug.cgi?id=263146 bug 263146])
== Use Cases ==
* From the Search Box, using Aliases to select (when user types a recognized alias, engine flips). When box contents are cleared, reverts to default.
* From the Location Bar, using Aliases to select


= Bugs =
# Search Bar in Firefox
# Keyword in URL/Search Bar
# Context Menu Search
# DNS Failure Search
# Search AutoDiscovery
 
== Plans & Design Documents ==
 
* [[Search Service:User Interface Design|User Interface Design]]
* [[Search Service:Code Design|Code Design]]
 
== API Changes Required ==
 
See [[Search Service:API|Proposed Search Service API]]. The current nsISideBar API will be kept for the addition of Sherlock plugins from Web content.
 
== Impact ==
 
Replacement of .src Sherlock Files with XML as the search plugin storage format.
 
=== Extensions ===
 
Extensions that alter the search box may have to change. Those that rely on the RDF Search datasource will break.
 
=== Localization ===
 
New engine format for localizations to use. Updating should be simple but tedious.
 
= Discussion & Implications =
 
About the topic
''There are a couple of basic usability issues with the Firefox search box: it is not necessarily obvious to an IE user what it does ''
I don't think that is valid any more since the new IE which implements this searchbar
 
 
 
== Discussion Elsewhere ==


* New File Format
* New File Format
Line 57: Line 101:
* Installation
* Installation
**[https://bugzilla.mozilla.org/show_bug.cgi?id=124334 Bug 124334]Should display an error message when failing to add a search engine
**[https://bugzilla.mozilla.org/show_bug.cgi?id=124334 Bug 124334]Should display an error message when failing to add a search engine
 
* What IE7's doing
= Work Estimate =
**[http://blogs.msdn.com/ie/archive/2006/02/07/527266.aspx IEBlog : Searching is better in Beta 2!]
 
* and Opera9
3 Weeks
**[http://my.opera.com/mitchman2/blog/show.dml/133235 Search engines in Opera 9 Technology Preview 2]

Latest revision as of 10:36, 25 November 2006

Please comment in the Talk page (use the Discussion tab above)

Tracked by: bug 317107

Goals & Objectives

To create the simplest, most efficient search experience for users. Adapt to the user's search needs, rather than forcing a particular view of search on them.

Create a simple, flexible system that unifies all search back ends, presents a common management infrastructure, makes adding keywords easy and more obvious, allows for engines to be added and removed easily when upgrading and allows for simple configuration for business needs.

Planned Milestones

Firefox 2 Alpha 1

  • Functionally equivalent JS-implemented search backend (nsISearchService)
  • Seamless search plugin migration

Firefox 2 Alpha 2

  • Search plugin updating system
  • Bookmarks keywords migration
  • UI Changes and refinements (engine ordering/management UI)
  • Search auto-detection
  • Web addition API

Overview

  1. Improve the general usability of front line search in Firefox: the search bar.
  2. Provide a consolidated search engine management system for the entire application that is easily updateable, trackable, and more usable for users.
  3. Utilize parseable formats to store engine metadata.
  4. Improve search engine discovery and addition user experience.

Background

Basic Issues

There are a couple of basic usability issues with the Firefox search box: it is not necessarily obvious to an IE user what it does (aside from the search engine logo) and how to use it, and it is often too narrow for the sort of queries that users type in.

Keywords

The Smart Keyword feature is basically undiscoverable, despite its extreme utility.

The default Smart Keywords should be revised to include shorter variants (limited to one or two characters, e.g., 'g' for Google) and much more numerous (Ebay, Amazon). Furthermore, Smart Keywords should be promoted as a prominent feature with the search toolbar being deprecated to non-default status.

Back Ends

Firefox 1.0 and 1.5 feature several different systems for performing internet searches:

  • The Search toolbar field, which includes an engine selector and the mechanism for adding more searches. This is powered by Sherlock .src files and uses the Internet Search Service.
  • The Bookmark "Smart" Keyword feature, which allows you to create bookmarks with parameterized sections, so that the user can then type "kw search_term" in the location bar and be taken to the resulting page.
  • The "Search Web For 'selected terms'" context menu item, which uses a preference to source its query URL.
  • The "DNS Failed" search URL, which searches for the text typed in the location bar when DNS lookup fails. Uses a preference to source its query URL. In Firefox 1.0 and 1.5, this does a Google "I'm Feeling Lucky" search by default.

These individual solutions have their pros and cons. The toolbar is useful but has some peripheral usability bugs, the search plugins are stored in the application directory and there is no easy way for the user to manage the engines they have installed.

All of these search systems use different back ends making them difficult to configure when engine queries or parameters change, and configuration for business reasons is somewhat tricky. Adding new engines with subsequent releases is somewhat simple though, since each engine that shows up in the toolbar menu is a separate file.

Use Cases

  1. Search Bar in Firefox
  2. Keyword in URL/Search Bar
  3. Context Menu Search
  4. DNS Failure Search
  5. Search AutoDiscovery

Plans & Design Documents

API Changes Required

See Proposed Search Service API. The current nsISideBar API will be kept for the addition of Sherlock plugins from Web content.

Impact

Replacement of .src Sherlock Files with XML as the search plugin storage format.

Extensions

Extensions that alter the search box may have to change. Those that rely on the RDF Search datasource will break.

Localization

New engine format for localizations to use. Updating should be simple but tedious.

Discussion & Implications

About the topic There are a couple of basic usability issues with the Firefox search box: it is not necessarily obvious to an IE user what it does I don't think that is valid any more since the new IE which implements this searchbar


Discussion Elsewhere