haiku/docs/userguide/en/queries.html

163 lines
12 KiB
HTML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<!--
*
* Copyright 2008-2009, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Humdinger <humdingerb@gmail.com>
*
-->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="robots" content="all" />
<title>Queries</title>
<link rel="stylesheet" type="text/css" href="../Haiku-doc.css" />
</head>
<body>
<div id="banner">
<div><span>User guide</span></div>
</div>
<div class="nav">
<div class="inner">
<ul class="lang-menu">
<li class="now"><img src="../images/flags/gb.png" alt="" /> English</li>
<li><a href="../fr/queries.html"><img src="../images/flags/fr.png" alt="" />Français</a></li>
<li><a href="../de/queries.html"><img src="../images/flags/de.png" alt="" />Deutsch</a></li>
<li><a href="../it/queries.html"><img src="../images/flags/it.png" alt="" />Italiano</a></li>
<li><a href="../ru/queries.html"><img src="../images/flags/ru.png" alt="" />Русский</a></li>
<li><a href="../es/queries.html"><img src="../images/flags/es.png" alt="" />Español</a></li>
<li><a href="../sv_SE/queries.html"><img src="../images/flags/sv_SE.png" alt="" />Svenska</a></li>
<li><a href="../jp/queries.html"><img src="../images/flags/jp.png" alt="" />日本語</a></li>
<li><a href="../uk/queries.html"><img src="../images/flags/uk.png" alt="" />Українська</a></li>
<li><a href="../zh_CN/queries.html"><img src="../images/flags/zh_CN.png" alt="" /> 中文 [中文]</a></li>
<li><a href="../pt_PT/queries.html"><img src="../images/flags/pt_PT.png" alt="" />Português</a></li>
<li><a href="../fi/queries.html"><img src="../images/flags/fi.png" alt="" />Suomi</a></li>
<li><a href="../sk/queries.html"><img src="../images/flags/sk.png" alt="" />Slovenčina</a></li>
</ul>
<span>
« <a href="index.html">Index</a>
:: <a href="contents.html" class="uplink">Contents</a>
:: <a href="workshop-filetypes+attributes.html">Workshop</a> »
</span></div>
</div>
<div id="content">
<div>
<table class="index" id="index" summary="index">
<tr class="heading"><td>Index</td></tr>
<tr class="index"><td>
<a href="#find-window">The Find window</a><br />
<a href="#basic-query">Basic queries - "by Name"</a><br />
<a href="#adv-query">Advanced queries - "by Attribute"</a><br />
<a href="#more-adv-query">Even more advanced queries - "by Formula"</a><br />
<a href="#result-window">The result window</a><br />
<a href="#query-template">Query Templates</a>
</td></tr>
</table>
<h1>Queries</h1>
<p>A query is a file search based on file attributes and can be performed within Tracker or in Terminal. Queries are saved in <span class="path">/boot/home/queries/</span> and by default last seven days before being purged. Note, these aren't static result lists of your search, but are the query formulas which trigger a new search whenever you open them.<br />
Even better, you don't have to double-click to re-do a query. You can <a href="tracker.html#navigating">drill down</a> a saved query just like any folder by right-clicking on it and navigating through the submenus.</p>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="find-window" name="find-window">The Find window</a></h2>
<p>You start a query by invoking the <span class="menu">Find...</span> menu either from the Deskbar menu or any Tracker window or the Desktop (which is actually a fullscreen Tracker window). The shortcut is <span class="key">ALT</span> <span class="key">F</span>. You're presented with the Find window:</p>
<img src="images/queries-images/basic-query.png" alt="basic-query.png" />
<ol>
<li><p>Select recent or saved queries or save the current search parameters as <a href="#query-template">Query Template</a>.</p></li>
<li><p>Narrow down your search from <span class="menu">All files and folders</span> to specific file types.</p></li>
<li>Define the search method:<ul>
<li><span class="menu">by Name</span> - a basic search by file or folder name</li>
<li><span class="menu">by Attribute</span> - an advanced search, you specify search terms for one or more attributes</li>
<li><span class="menu">by Formula</span> - an even more advanced search, you can fine-tune a complex query term</li></ul></li>
<li><p>Select which drives to search on.</p></li>
<li><p>Enter the search term.</p></li>
<li><p>The expander hides/unhides the additional options.</p></li>
<li><p>Uncheck the <span class="menu">Temporary</span> checkbox if you don't want this query self-destruct after 7 days.</p></li>
<li><p>Check if your query is supposed to <span class="menu">Include trash</span>.</p></li>
<li><p>Optionally, enter a name for this query if you want to save it.</p></li>
<li><p>You can drag&amp;drop the icon anywhere to save a query. Doing that with the right mouse button, offers the option to save as template.</p></li>
</ol>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="basic-query" name="basic-query">Basic queries - "by Name"</a></h2>
<p>If you simply want to find all files and folders on your mounted disks that match a certain pattern, simply leave the search method at <span class="menu">by Name</span>, enter the search term into the text box and press <span class="key">ENTER</span>.</p>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="adv-query" name="adv-query">Advanced queries - "by Attribute"</a></h2>
<p>You can create more advanced queries by searching within the attributes of specific file types. For that to work, these attributes have to be <a href="index.html">indexed</a>.</p>
<img src="images/queries-images/query-window.png" alt="query-window.png" />
<p>You start by setting the filetype from <span class="menu">All files and folders</span> to, for example, <span class="menu">Text | E-mail</span> and change the search method to <span class="menu">by Attribute</span>.</p>
<p>This adds a pop-up menu to the left of the textbox and the buttons <span class="button">Add</span> and <span class="button">Remove</span> under that. From the menu you choose which attribute to query. With <span class="button">Add</span> and <span class="button">Remove</span> you can query additional attributes or remove them again. These attributes can be logically linked with AND/OR.</p>
<p>Let's do an email query as an example:</p>
<img src="images/queries-images/query-window-filled.png" alt="query-window-filled.png" />
<p>This is your Find window when you're looking for all emails Clara Botters has sent to you in the last two months that had in the subject "vibraphone" or "skepticality".<br />
As you see, searching through time-based attributes supports some useful phrases: besides for the "last 2 months", you could also use "today", "yesterday", "Monday" or "last Monday" (which would be the Monday last week), or "last 2 minutes/hours/days/weeks".<br />
A good way to cut down the number of search results.</p>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="more-adv-query" name="more-adv-query">Even more advanced queries - "by Formula"</a></h2>
<p>Typing in a formula query by hand is daunting and really quite unpractical. It still has its uses.</p>
<p>Take the above query by attribute of Clara's mails concerning vibraphones etc. If you have all the attributes and their search terms set, try switching to <span class="menu">by Formula</span> mode and be overwhelmed by this one line query string:</p>
<img src="images/queries-images/formula-query.png" alt="formula-query.png" />
<p>Once more as text, edited for readability:</p>
<pre>(((((MAIL:from=="*[cC][lL][aA][rR][aA] [bB][oO][tT][tT][eE][rR][sS]*")
&amp;&amp;(MAIL:when&gt;=%2 months%))
&amp;&amp;(MAIL:subject=="*[vV][iI][bB][rR][aA][pP][hH][oO][nN][eE]*"))
||(MAIL:subject=="*[sS][kK][eE][pP][tT][iI][cC][aA][lL][iI][tT][yY]*"))
&amp;&amp;(BEOS:TYPE=="text/x-email"))</pre>
<p>What's the use?</p>
<ul>
<li><p>You could copy and paste the string into an email, forum or IRC for others to use or debug.</p></li>
<li><p>You can use this method to construct a query in <span class="menu">Attribute</span> mode and then switch to <span class="menu">Formula</span> mode, to comfortably generate a search string to use for a query in Terminal or a script.</p></li>
<li><p>You can fine tune your query by inserting parenthesis where needed, make parts case-sensitive or negate logical combinations by changing. e.g. "<tt>==</tt>" to "<tt>!=</tt>" for a NOT AND. All you need is a basic understanding of <a href="http://en.wikipedia.org/wiki/Regular_expression" class="external free" title="Wikipedia: Regular expression">regular expressions</a> and maybe some scripting basics.</p></li>
</ul>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="result-window" name="result-window">The result window</a></h2>
<p>After you start a search, the Find window will be replaced by a result window. Here is an example that queried for "server":</p>
<img src="images/queries-images/result-window.png" alt="result-window.png" />
<p>Besides the gray background, result windows work exactly like any other Tracker window. Some things are worth noting:</p>
<ul>
<li><p>You can open the location of a file or folder by double clicking on its path attribute.</p></li>
<li><p>With <span class="menu">File | Edit query</span> or <span class="key">ALT</span> <span class="key">G</span> you get back to your Find window to refine your query.</p></li>
<li><p>A query is live, i.e. if a file that matches your search criteria appears or disappears from your system, this change is reflected in your results in real-time.</p></li>
</ul>
<p>You can assign a sensible attribute layout for query results of a specific filetype. Open a folder containing files of the filetype you'd like to create a template for and arrange the attributes how you'd like to have query results presented. Copy this layout with <span class="menu">Attributes | Copy layout</span>.</p>
<p>Open <span class="path">/boot/home/config/settings/Tracker/DefaultQueryTemplates</span>, create a new folder named <i>group/filetype</i>, replacing the slash with an underscore, e.g. "audio_x-mp3". Open the new folder and paste in the previously copied layout with <span class="menu">Attributes | Paste layout</span>.</p>
<h2>
<a href="#"><img src="../images/up.png" style="border:none;float:right" alt="index" /></a>
<a id="query-template" name="query-template">Query Templates</a></h2>
<p>If you double click a saved query, the file search is at once started and the result window opens immediately. However, you may not want to search with these <i>exact</i> search parameters, but use it as starting point to only slightly tweak the formula.<br />
By using the <span class="menu">Save query as template</span> menu item (see <a href="#find-window">(1) in screenshot</a> at the top) or drag&amp;dropping the icon (10) anywhere with the right mouse button, you can create just such a template. Double clicking it won't open a result window, but the Find panel, giving you the opportunity to quickly change search strings or add/remove attributes.</p>
<p>Wherever you choose to save query templates, they'll be listed in the Find panel's menu of recent queries.</p>
</div>
</div>
<div class="nav">
<div class="inner"><span>
« <a href="index.html">Index</a>
:: <a href="contents.html" class="uplink">Contents</a>
:: <a href="workshop-filetypes+attributes.html">Workshop</a> »
</span></div>
</div>
</body>
</html>