The Problem:
I'm always having to look up the search syntax, particularly the axis names, and I don't like doing that.
My Solution
I wrote a BugMonkey script that adds an icon next to the search box with a dropdown of search axis values. Mousing over an item in the dropdown will show more info on how to use that axis, and clicking on it will insert it in the search box.
It isn't all that pretty yet, but it's functional. Feel free to update the script here if you want to add some cosmetics to it or improve the mouseover text on the search items.
Screenshot:

The Script
name: Search Box Helper
description: Adds a syntax helper widget to the search box.
author: John Fuex
version: 1.0.0.0
js:
var searchAxes = getSearchAxes();
var srchInput = $('#idDropList_searchFor_oText');
var imgSearchHelperButton = $('<span></span>');
imgSearchHelperButton.attr('id','searchHelperButton')
.text('?')
.css('position','absolute')
.css('left',srchInput.position().left - 25)
.css('top', srchInput.position().top);
srchInput.after(imgSearchHelperButton);
var divSearchHelper = $('<div></div>')
divSearchHelper.attr('id','divSearchHelper')
.css('position','absolute')
.css('width',srchInput.css('width'))
.css('top', srchInput.position().top + srchInput.outerHeight())
.css('left',imgSearchHelperButton.position().left)
.css('z-index','500')
.css('display','none');
for (var axisID=0; axisID<searchAxes.length; axisID+=2) {
var divHelpItem = $('<div></div>')
var itemText = searchAxes[axisID];
var itemDescription = searchAxes[axisID+1]
if(itemText.substr(0,1)=='#') {
itemText = itemText.substr(1);
divHelpItem .addClass('searchHelperItemHeader')
}
else {
divHelpItem .addClass('searchHelperItem');
}
var helpItem = $("<a/>").text(itemText).attr('title',itemDescription);
divHelpItem.append(helpItem);
divSearchHelper.append(divHelpItem );
}
srchInput.after(divSearchHelper);
// Attach event handlers
$('#searchHelperButton').click(function () { $('#divSearchHelper').toggle();});
$(".searchHelperItem").click(function() {
var srchInput = $('#idDropList_searchFor_oText');
var newSearchText = srchInput.val() + (srchInput.val() != '' ? ' ' : '') + $(this).text() + ':';
srchInput.val(newSearchText);
$('#divSearchHelper').toggle(false);
srchInput.focus();
});
function getSearchAxes() {
return ["#Cases","Axes for Searching Cases",
"AlsoEditedBy","cases edited by the specified user, to be used in combination with EditedBy",
"Area","cases in the specified area",
"AssignedTo","cases assigned to the specified user",
"Attachment","cases with an attachment with the specified name",
"Category","cases with the specified category",
"Closed","(date) cases closed on the date specified",
"ClosedBy","cases last closed by the specified user",
"CommunityUser","cases that were submitted by the specified community user",
"Computer","cases containing specific text in the second custom field. Note that this field may have been renamed in your installation",
"Correspondent","cases with the specified email correspondent",
"CreatedBy","cases created by the specified user",
"Department","cases belonging to the specified department",
"Due","(date) cases due on the date specified",
"Edited","(date) cases modified on the date specified",
"EditedBy","cases with a bug event generated by the specified user",
"ElapsedTime","cases with the specified (range of) elapsed time",
"EstimateCurrent","cases with the specified (range of) current estimate",
"EstimateOriginal","cases with the specified (range of) original estimate",
"From","cases with emails from the specified email address",
"LastEdited","(date) cases that were modified on the date specified and have not been modified since then",
"LastEditedBy","cases last edited by the specified user",
"LastViewed","(date) cases that you last viewed on the date specified",
"Milestone","cases assigned to the specified milestone",
"Occurrences","Number of occurrences for a BugzScout case",
"Opened","(date) cases opened on the date specified",
"OpenedBy","cases last opened or reopened by the specified user",
"OrderBy","This takes another axis as its argument and sorts the search results by that axis",
"Outline","returns cases in the same subcase hierarchy as the specified case",
"Parent","returns all subcases of the specified case",
"Root","all cases in the hierarchy underneath the specified case",
"Priority","cases with the specified priority",
"Project","cases in the specified project",
"ProjectGroup", "Cases in the specified project group (Requires the Project Groups Plugin",
"RelatedTo","cases that are linked to the specified case",
"Release","same as milestone",
"ReleaseNotes","search cases with text in release notes, use * to see all cases with release notes",
"RemainingTime","cases with the specified (range of) original estimate",
"Resolved","(date) cases resolved on the date specified",
"ResolvedBy","cases last resolved by the specified user",
"Show","cases with the specified attribute (Read, Unread, Subscribed or Spam)",
"StarredBy","starredby:me shows cases you have starred",
"Status","cases with the specified status",
"Tag","cases with the specified tag",
"Title","cases containing the specified words in the title",
"To","cases with email to the specified email address",
"Version","cases containing specific text in the first custom field. Note that this field may have been renamed in your installation",
"ViewedBy","viewedby:me shows cases you have previously viewed",
"#Wiki Pages","Axes for Wiki Pages",
"Edited","(date) wiki pages that were modified on the date specified",
"EditedBy","wiki pages edited by the specified user",
"LastEdited","(date) wiki pages that were modified on the date specified and have not been modified since then",
"LastEditedBy","wiki pages last edited by the specified user",
"LastViewed","(date) wiki pages that you last viewed on the date specified",
"Show","wiki pages with the specified attribute (Read, Unread or Subscribed)",
"StarredBy","starredby:me shows wiki pages you have starred",
"Title","Finds wiki pages containing the specified words in the title",
"ViewedBy","viewedby:me shows wiki pages you have previously viewed",
"Wiki","wiki pages in the specified wiki",
"#Discussion Topics","Axes for Discussion Topics",
"CreatedBy","topics created by the specified user",
"DiscussionGroup","topics in the specified discussion group",
"Edited","(date) topics that were modified on the date specified",
"EditedBy","topics edited by the specified user",
"LastEdited","(date) topics modified on the date specified and which have not been modified since then",
"LastEditedBy","topics last edited by the specified user",
"LastViewed","(date) topics that you last viewed on the date specified",
"Opened","(date) topics opened on the date specified",
"Show","topics with the specified attribute (Read or Unread)",
"StarredBy","starredby:me shows topics you have starred",
"Title","topics containing the specified words in the title",
"Type","type:case for cases, type:wiki for wiki pages, type:discuss for discussion topics",
"ViewedBy","viewedby:me shows topics you have previously viewed"
];
}
css:
#divSearchHelper {
background-color: white;
border: 1px solid #000000;
min-height:30px;
max-height:200px;
overflow-y: scroll;
}
#searchHelperButton {
font-family: Sand, fantasy
background-color:#E0E9F1;
border: 1px;
cursor:hand;cursor:pointer;
}
.searchHelperItemHeader {
cursor:hand;cursor:default;
margin-left: 1em;
font-weight: bold;
}
.searchHelperItem {
cursor:hand;cursor:pointer;
margin-left: 2em;
}