Windows XP Hacks Free Open Book

Windows XP Hacks

Previous Section Next Section

Hack 25 Find Files Faster by Mastering the Indexing Service's Query Language

figs/expert.giffigs/hack25.gif

Got a hard disk filled with many files, and no easy way to find what you want quickly? Use the Indexing Service and its query language to get what you want fast.

Packrats like me (and my editor) have a hard time finding exactly what they want on their hard disk. I have thousands of files there, some dating back close to ten years, that I dutifully copy to a new system every time I upgrade my hardware. After all, who knows when I might need to find the list of books I planned to take out of the library in 1986?

XP's Search Companion is too slow and the kinds of searches it can perform are fairly limited. It can't find files based on properties such as when the file was last printed or the word count of a file, or using a sophisticated search language.

The Indexing Service, first used with the Microsoft Internet Information Services (IIS), is a far more powerful tool. It can perform searches hundreds of times faster and includes an exceedingly sophisticated query language you can use for performing searches. It works by indexing the files on your disk, and then, when you do a search, it queries that index rather than searching through your entire hard disk. The indexes that the service creates are called catalogs.

By default, the Indexing Service is turned off. To activate it, first run the Search Companion by choosing Start Search[ For Files or Folders]. From the Search Companion, choose Change Preferences With Indexing Service. If the With Indexing Service option isn't available, and instead you see Without Indexing Service, it means that the Indexing Service is already turned on.

When you activate the Indexing Service, it won't immediately be available. It first has to build an index, which can take a substantial amount of time, depending on the amount of files on your hard disk, and your processor speed. It's best to start the Indexing Service and leave your computer on overnight so that it can complete indexing.

To turn off the Indexing Service from the Search Companion, choose Change Preferences Without Indexing Service. When you do that, you'll use the normal Search Companion. The index will remain intact; when you do a search, you just won't search through it. You can always turn the index back on when you want.

3.6.1 Using the Indexing Service's Query Language

The Indexing Service's query language is a sophisticated language, letting you search on file properties—such as the author of documents or the number of bytes in a document—and also uses Boolean operators and other search criteria.

The language uses tags to define search criteria. For example, to search for the phrase "That dog won't hunt," the query would be:

{phrase} That dog won't hunt {/phrase}

There are two basic ways to search for text in the query language, using either phrase or freetext. A phrase search searches for the exact words in the exact order, like this:

{phrase} old dog barks backwards {/phrase}

The search results will include only files whose text includes that exact phrase.

A freetext expression search looks for any words in the phrase and returns files that have any one of the words in the phrase. It works like the Boolean OR operator. So, the query:

{freetext} old dog barks backwards {/freetext}

returns many more searches than the phrase query, since it returns results that contain any of the words in the phrase.

3.6.2 Searching Using Properties

The Indexing Service's query language's power is contained in the way it can search not just for text, but also for document properties. The syntax for searching using properties in a query is:

{prop name=property name} query {/prop}

where property name is the name of the property, such as those listed in Table 3-2, and query is the text you're searching for. For example, to search for all documents last edited by Preston Gralla, you would enter:

{prop name=DocLastAuthor} Preston Gralla {/prop}

Queries can use * and ? wildcard characters, as well as Unix-style regular expression queries (for more on regular expressions, see Mastering Regular Expressions from O'Reilly). In order to use these wildcards, you must use the {regex} tag, like this:

{prop name=filename} {regex} *.xl? {/regex} {/prop}

The Indexing Service indexes not just the text of each document, but also all the summary information associated with each document. (To see summary information for any document, right-click on it and choose Properties Summary.) In addition to searching for properties in the summary, you can also search for the properties found in Table 3-2, which lists the most important properties you can use to search.

Table 3-2. Important properties for searching via the Indexing Service

Property

Description

Access

The last time the document was accessed.

All

All available properties. Works with text queries, but not numeric queries.

AllocSize

The total disk space allocated to the document.

Contents

The contents of the document.

Created

The time the document was created.

Directory

The full directory path in which the document is contained.

DocAppName

The name of the application in which the document was created.

DocAuthor

The author of the document.

DocByteCount

The number of bytes in the document.

DocCategory

The type of document.

DocCharCount

The number of characters in the document.

DocComments

Comments made about the document.

DocCompany

The name of the company for which the document was written.

DocCreatedTime

The time spent editing the document.

DocHiddenCount

The number of hidden slides in a PowerPoint document.

DocKeyWords

The key words in the document.

DocLastAuthor

The name of the person who last edited the document.

DocLastPrinted

The time the document was most recently printed.

DocLineCount

The number of lines contained in the document.

DocLastSavedTm

The time that the document was last saved.

DocManager

The name of the manager of the document's author.

DocNoteCount

The number of pages with notes in a PowerPoint document.

DocPageCount

The number of pages in the document.

DocParaCount

The number of paragraphs in the document.

DocPartTitles

The names of document parts, such as spreadsheet names in an Excel document or slide titles in a PowerPoint slide show.

DocRevNumber

The current version number of document.

DocSlideCount

The number of slides in a PowerPoint document.

DocTemplate

The name of the document's template.

DocTitle

The title of the document.

DocWordCount

The number of words in the document.

FileName

The filename of the document.

Path

The path to the document, including the document filename.

ShortFileName

The 8.3-format name of the document.

Size

The size of the document, in bytes.

Write

The date and time the document was last modified.

3.6.3 Searching Using Operators and Expressions

The query language also lets you use a variety of operators and expressions for both text and numbers:

EQUALS and CONTAINS operators

When you're creating a query using text, you can use the EQUALS and CONTAINS operators to narrow your search. Use the EQUALS operator when you want the exact words matched in the exact order, like this:

{prop name=DocTitle} EQUALS First Draft of Final Novel {/prop}

This query finds all documents with the title "First Draft of Final Novel." The query wouldn't find a document with the title "Final Draft of First Novel" or "First Draft of Novel." The EQUALS operator works like the phrase expression.

Use the CONTAINS operator when you want to find any of the words in the document, in the same way you would use the freetext expression.

Relational operators

Use relational operators when you're searching using numbers:

=

Equal to

!=

Not equal to

<

Less than

<=

Less than or equal to

>

Greater than

>=

Greater than or equal to

Date and time expressions

You can use the following formats when searching using dates and times:

yyyy/mm/dd hh:mm:ss
yyyy-mmmm-dd hh:mm:ss

You can also use date and time expressions in combination with relational operators—for example, to look for files that were created within the last two days:

{prop name=Created}  >-2d  {/prop}

Table 3-3 lists the date and time abbreviations you can use.

Table 3-3. Date and time expressions that work with relational operators

Abbreviation

Meaning

Abbreviation

Meaning

Y

Year

D

Day

Q

Quarter

H

Hour

M

Month

N

Minute

W

Week

S

Second

Boolean operators

The query language also uses the Boolean operators detailed in Table 3-4.

Table 3-4. Boolean operators used by the Indexing Service's query language

Boolean Operator

Long Form

Short Form

AND

&

AND

OR

|

OR

Unary NOT

!

NOT

Binary NOT

&!

AND NOT

Use the unary NOT when you're searching using numbers rather than text. For example, to search for all documents that do not have seven PowerPoint slides, use the query:

{prop name=DocSlideCount} NOT = 7 {/prop}

Use the binary NOT to narrow a search, by combining two properties in a query. For example, to search for all documents with an author of "Preston Gralla" that are not titled "Chapter 10", use this query (on one line):

{prop name=DocAuthor} Preston Gralla  {/prop} NOT
{prop name=DocTitle} Chapter 10  {/prop}
Alternative verb forms

You can use the double-asterisk wildcard to search for alternative forms of verbs in a document. For example, the query:

{prop name=Contents} run** {/prop}

returns all documents with the word "ran" or the word "run."

3.6.4 Ranking the Order of Search Results

If you're doing a search likely to return many results, you'll want the most relevant searches to appear at the top of the results, and the least relevant to appear at the bottom. You can determine the relative importance of each term in your search and have the results weighted by that importance, by using the weight tag. Note that it does not get a closing tag:

{weight value = n} query

The value parameter ranges between 0.000 and 1.000.

If you are searching for the three terms, "fire," "ice," and "slush," and you want to weight "fire" most heavily, "ice" second most heavily, and "slush" least heavily, you can use this syntax (on a single line) in your query:

{weight value=1.000}fire AND {weight value=.500}ice AND {weight value=.250}slush

3.6.5 Editing the Indexing Service's "Noise" Filter

You can force the Indexing Service to ignore more words when you search, or you can have it ignore fewer words, simply by editing a text file. In a text file called noise.eng, usually found in C:\Windows\System32\, you can find the list of words that the Indexing Service ignores. (The extension .eng is for English. Noise filters from other languages can be found as well—for example, noise.deu for German, noise.fra for French, and so on.)

The noise.eng file contains common articles, prepositions, pronouns, conjunctions, various forms of common verbs, and similar words. Open it in Notepad or another text editor, add words that you want it to ignore, and delete files that you don't want it to ignore. Then save the file, and the Indexing Service will follow your new rules.

    Previous Section Next Section
    Index: [SYMBOL][A][B][C][D][E][F][G][H][I][J][L][M][N][O][P][Q][R][S][T][U][V][W][X][Z]


         Main Menu
    Main Page
    Table of content
    Copyright
    Credits
    Preface
    Chapter 1. Startup and Shutdown
    Chapter 2. The User Interface
    Chapter 3. Windows Explorer
    3.1 Hacks #21-32
    Hack 21 Generating Folder and File Listingsfor Printing or Editing
    Hack 22 Control Windows Explorer with Command-Line Shortcuts
    Hack 23 Empower Windows Explorer with PowerDesk
    Hack 24 Better File Rename
    Hack 25 Find Files Faster by Mastering the Indexing Service's Query Language
    Hack 26 Hiding Folders and Files with the Encrypting File System
    Hack 27 Forcing Windows Explorer Into True Usefulness
    Hack 28 Customize Folder Icons and Balloon Text
    Hack 29 A Power User's Hidden Weapon: Improve the Context Menu
    Hack 30 Take Your Work on the Go with Offline Files and the Briefcase
    Hack 31 Get More Hard Disk Space by Using NTFS Compression
    Hack 32 Put a Command-Line Prompt on Your Desktop
    Chapter 4. The Web
    Chapter 5. Networking
    Chapter 6. Email
    Chapter 7. The Registry
    Chapter 8. Basic Utilities
    Chapter 9. Applications
    Chapter 10. Graphics and Multimedia
    Chapter 11. System Performance
    Chapter 12. Hardware
    Colophon
    Index


    More Books
    PHP Hacks
    Processing Xml With Java - A Guide To Sax, Dom, Jdom, Jaxp, And Trax
    The Koran (Holy Qur'an)
    Macromedia Flash 8 Bible
    Search Engine Optimization for Dummies
    YouTube Traffic
    PHP 5 for Dummies
    Harry Potter and The Chamber of Secrets
    Harry Potter and the Sorcerer's Stone
    The Pilgrim's Progress
    Wireless Hacks
    Flash Hacks. 100 Industrial-Strength Tips & Tools
    PayPal Hacks. 100 Industrial-Strength Tips and Tools
    Amazon Hacks
    Pdf Hacks
    The Da Vinci Code
    Google Hacks
    The Holy Bible
    Windows XP For Dummies
    Harry Potter and the Half-Blood Prince
    Seo Book
    Upgrading and Repairing Networks
    Macromedia Dreamweaver 8 UNLEASHED
    Windows XP Annoyances
    Windows XP Hacks
    Microsoft Windows XP Power Toolkit
    Teach Yourself MS Office In 24Hours
    iPod & iTunes Missing Manual
    PC Hacks 100 Industrial-Strength Tips and Tools
    PC Overclocking, Optimization, and Tuning - 2th Edition
    PC Hardware In A Nutshell 3rd Edition
    PC Hardware in a Nutshell, 2nd Edition
    Upgrading and Repairing PCs
    Google for Dummies
    MySQL Cookbook
    Teach Yourself Macromedia Flash 8 In 24 Hours
    PHP CookBook
    Sams Teach Yourself JavaScript in 24 Hours
    PHP5 Manual
    Free Games Paper Airplanes
    500 Juegos Gratis 500 Giochi Gratis 500 Jeux Gratuits 500 Jogos Gratis 500 Kostenlose Spiele