Searching using GET

When the TEXTSEARCH or SPACEJUMP methods are supported, their implementation is in fact by means of the GET method, by constructing a derived URL.

The URL used with GET is the URL of the object, suffixed by a "?" character and the text to be searched. If the object being searched is in fact itself the result of a search (ie the URL contains a "?"), then those search terms are first stripped off, so the search is performed on the original object.

In the URL, keywords are seperated with plus signs ("+"). Real spaces, plus signs, and other illegal characters [who defines illegal characters?] are represented as hexadecimal ASCII escape sequences (%##, e.g., space = %20, plus = %2B)

Browsers accepting text input should define keywords as seperated by spaces (and therefore map them to plus signs). More advanced browsers may allow separate keyword input and, therefore, a finer level of control over the content without users needing to understand the underlying mechanisms (e.g., that they must use %20 to get a real space).


The following is a request on an object supporting TEXTSEARCH:
		GET   /indexes/botany?annual+plants     HTTP/1.0

This request on an object supporting SPACEJUMP selects point (0.2,3.8) within a map:
		GET   /maps/uk/dorset/winspit/0.2+3.8	HTTP/1.0


Only one ? operator is allowed in a URL. The convention is that when the result of a search is itself marked as searchable, the search is applied to the original index.