Search Service: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(rfe bugs, post method. need summary for opensearch)
No edit summary
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=##### bug #####]


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


* The Search Box (Sherlock Plugins)
To create a simple, flexible system that unifies all search back ends, presents a common management infrastructure, makes adding keywords (now called "aliases") easy and more obvious, allows for engines to be added and removed easily when upgrading and allows for simple configuration for business needs.
* Bookmarks Keywords


There are others ("Web Search for" context menu, keyword URL, etc, but these are less important since their uses are more distinct).
= Overview =


We are also carrying a large amount of code around in the Internet Search Service that is no longer used.  
Provide a consolidated search engine management system for the entire application that is easily updateable, trackable, and more usable for users. Utilize parseable formats to store engine metadata.  


= A New Internet Search Service =  
== Background ==
Firefox 1.0 and 1.5 feature several different systems for performing internet searches:


A new Internet Search Service can be implemented offering:
* 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.
   
The Smart Keyword feature is basically undiscoverable, despite its extreme utility.
     
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.


* a single collection of search engines (1)
== Use Cases ==
* a single update mechanism
* 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.


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.
# Search Bar in Firefox
# Keyword in URL/Search Bar
# Context Menu Search
# DNS Failure Search
# Search AutoDiscovery


* POST method search
== Plans & Design Documents ==
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 Design|User Interface Design]]
= User Interface =
* [[/Code Design|Code Design]]
* [[/Test Plan|Test Plan]]
* [[/Documentation Plan|Documentation Plan]]


== Search Engine Manager ==
== API Changes Required ==


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.  
Not yet known.  


== Installation ==
== Impact ==


From one of several access points including:
Replacement of .src Sherlock Files.


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


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


== Searching ==
=== Localization ===


* From the Search Box, using Ctrl+Up/Dn to cycle (but see [https://bugzilla.mozilla.org/show_bug.cgi?id=263146 bug 263146])
New engine format for localizations to use. Updating should be simple but tedious.  
* 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 =
= Discussion & Implications =
 
== Discussion Elsewhere ==


* New File Format
* New File Format
Line 57: Line 68:
* 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
= Work Estimate =
3 Weeks

Revision as of 20:06, 27 November 2005

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

Tracked by: bug #####

Goals & Objectives

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

Overview

Provide a consolidated search engine management system for the entire application that is easily updateable, trackable, and more usable for users. Utilize parseable formats to store engine metadata.

Background

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.

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

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

Not yet known.

Impact

Replacement of .src Sherlock Files.

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

Discussion Elsewhere

  • New File Format
    • Bug 308674Monitor and implement the OpenSearch 1.1 standard
  • Post Method
    • Bug 66363Search plugins don't work with the post method
  • Search Engine Manager (Provisional)
    • Bug 232272Better management of search engines for toolbar (remove, store in profile, etc) over the current add new engines system
    • Bug 255545search plugins cannot be reordered
  • Installation
    • Bug 124334Should display an error message when failing to add a search engine