NAME

WWW::SearchResult - class for results returned from WWW::Search


SYNOPSIS

    require WWW::Search;
    require WWW::SearchResult;
    $search = new WWW::Search;
    $search->native_query(WWW::Search::escape_query($query));
    # get first result
    $result = $search->next_result();


DESCRIPTION

A framework for returning the results of WWW::Search.


SEE ALSO

the WWW::Search manpage


REQUIRED RESULTS

The particular fields returned in a result are backend- (search engine-) dependent. However, all search engines are required to return a url and title. (This list may grow in the future.)


METHODS AND FUNCTIONS

new

To create a new WWW::SearchResult, call

    $result = new WWW::SearchResult();

url

Returns the primary URL. Note that there may be a list of urls, see also methods urls and add_url. Nothing special is guaranteed about the primary URL other than that it is the first one returned by the back end.

Every result is required to have at least one URL.

urls

Return a reference to an array of urls. There is also a primary URL (url). See also add_url.

add_url

Add a URL to the list.

related_urls, add_related_url, related_titles, add_related_title

Analgous to urls, these functions provide lists of related URLs and their titles. These point to things the search engine thinks you might want.

title, description, score, change_date, index_date, size, raw

Set or get attributes of the result.

None of these attributes is guaranteed to be provided by a given backend. If an attribute is not provided its method will return undef.

Typical contents of these attributes:

title
The title of the hit result (typically that provided by the 'TITLE' HTML tag).

description
A brief description of the result, as provided (or not) by the search engine. Often the first few sentences of the document.

source
Source is either the base url for this result (as listed on the search engine's results page) or another copy of the full url path of the result. It might also indicate the source site address where the resource was found, for example, 'http://www.cnn.com' if the search result page said ``found at CNN.com''.

This value is backend-specific; in fact very few backends set this value.

score
A backend specific, numeric score of the search result. The exact range of scores is search-engine specific. Usually larger scores are better, but this is no longer required. See normalized_score for a backend independent score.

normalized_score
This is intended to be a backend-independent score of the search result. The range of this score is between 0 and 1000. Higher values indicate better quality results.

This is not really implemented since no one has created an backend-independent ranking algorithm.

change_date
When the result was last changed.

index_date
When the search engine indexed the result.

size
The approximate size of the result, in bytes. This is only an approximation because search backends often report the size as ``18.4K''; the best we can do with that number is return it as the value of 18.4 * 1024.

raw
The raw HTML for the entire result. Raw should be exactly the raw HTML for one entry. It should not include list or table setup commands (like ul or table tags), but it may include list item or table data commands (like li, tr, or td). Whether raw contains a list entry, table row, br-separated lines, or plain text is search-engine dependent. In fact, many backends do not even return it at all.

company, location, source

More attributes of the result.