Search Service: Difference between revisions

m (Reverted edit of Qwmklqi, changed back to last version by RyanJones)
 
(23 intermediate revisions by 11 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 ==


= User Interface =  
=== Basic Issues ===


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.  
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.


== Installation ==
=== Keywords ===


From one of several access points including:
The Smart Keyword feature is basically undiscoverable, despite its extreme utility.


* the web, via the .addEngine API
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 remote engine list in the Customize UI
* the "Add Keyword for Search" context menu item capturing updates.


== Searching ==
=== Back Ends ===


* From the Search Box, using Ctrl+Up/Dn to cycle (but see [https://bugzilla.mozilla.org/show_bug.cgi?id=263146 bug 263146])
Firefox 1.0 and 1.5 feature several different systems for performing internet searches:
* 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


= Work Estimate =
* 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.


3 Weeks
== Use Cases ==
 
# 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
**[https://bugzilla.mozilla.org/show_bug.cgi?id=308674 Bug 308674]Monitor and implement the OpenSearch 1.1 standard
* Post Method
**[https://bugzilla.mozilla.org/show_bug.cgi?id=66363 Bug 66363]Search plugins don't work with the post method
* Search Engine Manager (Provisional)
**[https://bugzilla.mozilla.org/show_bug.cgi?id=232272 Bug 232272]Better management of search engines for toolbar (remove, store in profile, etc) over the current add new engines system
**[https://bugzilla.mozilla.org/show_bug.cgi?id=255545 Bug 255545]search plugins cannot be reordered
* Installation
**[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
**[http://blogs.msdn.com/ie/archive/2006/02/07/527266.aspx IEBlog : Searching is better in Beta 2!]
* and Opera9
**[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