Last year, we introduced structured custom search. If you mark up your pages with custom metadata attributes, you can render them with your search results, and also restrict results based on specific attribute values.

Today, we’re happy to be releasing 2 additional metadata features:
  • Sort by Attribute: order search results based on values of specific attributes
  • Restrict to Range: only return search results with attributes within a defined range
For example, if you mark up your pages with custom metadata attributes, like dates, ratings and prices, you can order your search results by these attributes, such as sort by date, bias towards highly rated items, or restrict to a specific price range., a California news portal, uses the new Sort by Attribute feature in conjunction with the Google Custom Search Element to render recent stories with photos in the results:

SignOnSanDiego uses the new sort operator. The sort operator comes in several flavors, from a mild bias to strict sort ordering; uses a strong bias towards the publication date to ensure readers see not only the most relevant, but also timely news.

To implement the new features, you must mark up the pages you are searching with the attributes you want to use. You can do this via PageMaps; the PageMap used by SignOnSanDiego looks like this:

<DataObject type="date">
<Attribute name="displaydate" value="Wednesday, August 25, 2010"/>
<Attribute name="sdate" value="20100825"/>

<DataObject type="thumbnail">
<Attribute name="src" value=""/>
<Attribute name="width" value="100"/>

SignOnSanDiego’s publication date is stored in the DataObject of type ‘date’ as the Attribute named ‘sdate’; to specify this field you combine the type and name into a single field ‘date-sdate’. To apply Sort by Attribute over date-sdate, you set the sort option in the search code for the Element as shown below:

var options = {};
options[] = {'sort': 'date-sdate:d:s'};
customSearchControl = new'000525776413497593842:aooj-2z_jjm', options);
The sort option {'sort': 'date-sdate:d:s'} takes a combined attribute name, like ‘date-sdate’, and several optional parameters separated by colons. In this case, SignOnSanDiego has specified sorting in descending order (d) using the strong bias (s) flavor of the operator. Without qualifiers, the default is to use a descending order with a hard sort. You can also choose to sort in ascending order (a), or use a weak sort flavor (w) or explicitly specify a strict hard sort (h).

The sort option also enables the Restrict to Range feature. For example a site like SignOnSanDiego might enable users to search for articles published in the last week. To implement this, you can set the sort options to “date-sdate:r:20101206:20101213”. This again uses the combined attribute name (date-sdate), but instead restricts to the range (r) of specified values (20101206:20101213). Multiple operators can be combined in the sort option using a comma. For example, to combine SignOnSanDiego’s strong bias with the above date restriction, you would specify “date-sdate:d:s,date-sdate:r:20101206:20101213”.

The Sort by Attribute and Restrict to Range features are a powerful new set of options that gives you a great deal of control over your search application, allowing you to use custom attributes to order and restrict your search results in very powerful ways for your users. For example, a movie review site can display the most highly rated movies released within the last week by combining distinct attributes in the sort operator, e.g., “review-rating,release-date:r:20101206:20101213”.

A few more tips:
1. With custom data rendering, you can customize your results even further.
2. You can always validate your metadata markup with the use of the rich snippet preview tool.
3. If you are not using the Element, you can always use the same sort options in the sort URL parameter, e.g., “&sort=date-sdate”.

For more details on these new features, please refer to our documentation. As always, we’re looking to you for feedback.