blob: 50d4d8c8fb33569e5f20eb5471190b11df20132a [file] [log] [blame]
[define category_css]css/ph_detail.css[end]
[include "../framework/header.ezt" "hidetabs"]
[# Note: No UI element permission checking needed on this page. ]
<div id="searchtips">
<h3>Basic issue search</h3>
<p>In most cases you can find the issues that you want to work with
very easily by using the issue list headers or by entering a few
simple keywords into the main search field.</p>
<p>Whenever you visit the "<a href="list">issue list</a>" in your
project, you are presented with a table of all open issues, or the default
query set up by the project owners. If you
see too many results, you can quickly filter your results by clicking
on the table headers and choosing a specific value from the "Show
only:" submenu.</p>
[# TODO screenshot ]
<p>The main search field consists of two parts:</p>
<ul>
<li>A drop-down selection of search scopes, e.g, "All issues" or just "Open issues".</li>
<li>A search text field where you can enter search terms.</li>
</ul>
[# TODO screenshot ]
<p>In the text field, you may enter simple search terms, or add any of
the search operators described below.</p>
<p>You can also use the search text field to jump directly to any
issue by entering its issue number. If you wish to search for issues
that contain a number, rather than jumping to that issue, enclose the
number in quotation marks.</p>
<p>Behind the scenes, the search scope is simply an additional set of
search terms that is automatically combined with the user's search
terms to make a complete query. To see what search terms will be
used for each scope, hover your mouse over the scope item.</p>
<h3>Advanced issue search</h3>
<p>The <a href="advsearch">Advanced Search</a> page helps you
compose a complex query. The advanced search form breaks the search
down into several popular criteria and allows you to specify each one
easily. The search criteria boil down to the same thing as the search
operators described below, but you don't need to remember the operator
names.</p>
<h3>Full-text search</h3>
<p>As with Google web search, you can search for issues by simply
entering a few words. However, you may get a few more results than
you expected. When you need to search more precisely, you can use
search operators for more power.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="&quot;out of memory&quot;">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>Full-text search terms can include quoted phrases, and words or
phrases can be negated by using a leading minus sign. Please note
that negated full-text terms are likely to give large result sets,
so it is best to use structured search operators when possible.</p>
<h3>Search operators</h3>
<p>Normal search terms will match words found in any field of an
issue. You can narrow the search to a specific field by using the
name of the field. The built-in field operators are <tt>summary</tt>,
<tt>description</tt>, <tt>comment</tt>, <tt>status</tt>, <tt>reporter</tt>,
<tt>owner</tt>, <tt>cc</tt>, <tt>component</tt>, <tt>commentby</tt>,
<tt>hotlist</tt>, <tt>ID</tt>, <tt>project</tt>,
and <tt>label</tt>.</p>
<p>Field names can be compared to a list of values using:</p>
<ul>
<li>a colon (:) for word matching,</li>
<li>an equals sign (=) for full string matching,</li>
<li>a not equals sign (!=) or leading minus sign to negate, or</li>
<li>inequality operators (&lt;, &gt;, &lt;=, &gt;=) for numeric comparison.</li>
</ul>
<p>You can limit your search to just open issues by using
is:open, or to just closed issues by using a minus sign to negate it:
<tt>-is:open</tt>.</p>
[# TODO(jrobbins): dateopened:]
<p>For example, here's how to search for issues with the word
"calculation" in the summary field.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="summary:calculation">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>When searching for issues owned by a specific user, you can use their
email address, or part of it. When referring to yourself, you can also
use the special term <tt>me</tt>. For example, this restricts the search to
issues that are owned by you.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="owner:user@chromium.org">
<input type="submit" name="btn" value="Search">
</form>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="owner:me">
<input type="submit" name="btn" [if-any logged_in_user][else]disabled=disabled[end] value="Search">
[if-any logged_in_user][else]
<span style="white-space:nowrap"><a href="[login_url]"
>Sign in</a> to try this example</span>
[end]</p>
</form>
<p>Rather than have a large number of predefined fields, our issue
tracker stores many issue details as labels.</p>
<p>For example, if you labeled security-related issues with the label
<tt>Security</tt>, here's how to search for them.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="label:security">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>In addition to simple one-word labels, you can use two part labels
that specify an attribute and a value, like <tt>Priority-High</tt>,
<tt>Priority-Medium</tt>, and <tt>Priority-Low</tt>. You can search for
these with the <tt>label</tt> operator, or you can use the first part of the
label name like an operator.</p>
<p>For example, if you labeled high priority issues with
<tt>Priority-High</tt>, here's one way to search for them.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="label:Priority-High">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>And, here is a more compact way to do the same search.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="Priority:High">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>For the <tt>components</tt> operator, the default search will find
issues in that component and all of its subcomponents.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="component:UI">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>And of course, you can combine any of these field operators.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q"
value="status!=New owner:me component:UI">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can search for issues in the current project that are also on a user's
hotlist.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q"
value="hostlist=username@domain:hotlistname">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Empty (or non-empty) field search</h3>
<p>For each built-in field operator, you can use the <tt>has</tt>
operator to search for issues with empty or non-empty fields. The
<tt>has</tt> operator can be used with status, owner, cc, component,
attachments, blocking, blockedon, mergedinto, any key-value label prefix, or
any custom field name.</p>
<p>For example, here's how to search for issues that have one or more
components.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="has:component">
<input type="submit" name="btn" value="Search">
</form>
<p>Or, you can use the <tt>-has</tt> operator for negation, to search for
issues with empty fields.</p>
<p>For example, here's how to search for issues that are not associated with
any component.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="-has:component">
<input type="submit" name="btn" value="Search">
</form>
<h3>Multiple values in search terms</h3>
<p>You can search for two values for one field, or two labels
with the same prefix by using.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="Priority:High,Medium">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can combine two separate queries into one using the <tt>OR</tt> operator.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="Priority:High OR -has:owner">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can create more complex <tt>OR</tt> queries using parentheses nesting to
distribute search terms across <tt>OR</tt> clauses. A search query may contain as
many sets of parentheses and levels of parentheses nesting as needed.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="Pri:0,1 (status:Untriaged OR -has:owner)">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Exact value search</h3>
<p>You can search for issues that exactly match the given term by using
the search operator <tt>=</tt>.</p>
<p>For example, searching for <tt>Milestone=2009</tt> only matches issues with the
label <tt>Milestone-2009</tt>, while searching for <tt>Milestone:2009</tt> matches
issues with the labels <tt>Milestone-2009</tt>, <tt>Milestone-2009-Q1</tt>, <tt>Milestone-2009-Q3</tt>,
etc.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="Milestone=2009">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>Similarly, using exact matching on components will get you only those issues
that are in that component, not including any of its descendants.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="component=UI">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Star search</h3>
<p>Any logged in user can mark any issue with a star. The star
indicates interest in the issue.</p>
<p>For example, to quickly see all the issues in this project that you
have starred, you could use the following:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="is:starred">
<input type="submit" name="btn" [if-any logged_in_user][else]disabled="disabled"[end] value="Search">
[if-any logged_in_user][else]
<span style="white-space:nowrap"><a href="[login_url]"
>Sign in</a> to try this example</span>
[end]</p>
</form>
<p>And, to see the issues that more than ten users have starred, use the following:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="stars>10">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Jump to issue and numeric search</h3>
<p>You can jump directly to a specific issue by entering its ID in the
search field.</p>
<p>For example, to jump to issue 1, just search for 1. If there is no
existing issue with that ID, the system will search for issues that
contain that number anywhere in the issue.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="1">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>If you just want to search for issues that contain the number 1, without
jumping to issue 1, enclose the number in quotation marks.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="&quot;1&quot;">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>Searching for a list of specific issue IDs is one way to
communicate a set of issues to someone that you are working with. Be
sure to set the search scope to "All issues" if the issues might be
closed.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="ID=1,2,3,4">
<input type="hidden" name="can" value="1">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Attachment search</h3>
<p>Users can attach files to any issues, either when issues are created or as
part of issue comments.</p>
<p>To quickly see all the issues that have attachments, use the following:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="has:attachments">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>Or, you can search for a specific filename of the attachment.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="attachment:screenshot">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can also search for the file extension of the attachment.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="attachment:png">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can also search for issues with a certain number of attachments.</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="attachments>10">
<input type="submit" name="btn" value="Search"></p>
</form>
<h3>Date range search</h3>
<p>You can perform searches based on date ranges.</p>
<p>This search syntax is divided into two parts, the action and the date,
[[]action]:[[]date]</p>
<p>Built-in date operators include <tt>opened</tt>,
<tt>modified</tt>, and <tt>closed</tt>. Each can be paired with an
inequality operator <tt>&lt</tt> or <tt>&gt</tt>. The date must to be
specified as YYYY-MM-DD, YYYY/MM/DD or today-N.</p>
<p>For example, if you want to search for issues opened after 2009/4/1, you
could do the following:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="opened>2009/4/1">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>Or, if you want to search for issues modified 20 days before today's date,
you could do the following:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="modified<today-20">
<input type="submit" name="btn" value="Search"></p>
</form>
<p>You can search for issues that had specific fields modified
recently by using ownermodified:, statusmodified:, componentmodified:.
For example:</p>
<form action="list" method="GET">
<p><input type="text" size="45" name="q" value="ownermodified>today-20">
<input type="submit" name="btn" value="Search"></p>
</form>
</div>
[include "../framework/footer.ezt"]