Click to Rate and Give Feedback
MSDN
MSDN Library
User Interface
Windows Shell
Shell Reference
Shell Properties
Search
 System.Search.IsClosedDirectory

  Switch on low bandwidth view
System.Search.IsClosedDirectory
Emitted as TRUE by a container item to indicate that its child items do not need to be enumerated by an indexer if the container item has not changed since the last incremental index verification crawl. This contributes to the optimization of indexer performance. In these container cases (examples are an e-mail with attachments or a compressed file with a .zip name extension), child items are inseparable from their parent item. For instance, if the System.DateModified property of a contained item changes, then the System.DateModified value of the container changes to match. Also, if a parent item is deleted, all of the child items are deleted as well. Therefore, if the container has not changed, the indexer knows that nothing within it has changed and does not need to open the container to examine the contents individually.

propertyDescription
     name = System.Search.IsClosedDirectory
     shellPKey = PKEY_Search_IsClosedDirectory
     formatID = 0B63E343-9CCC-11D0-BCDB-00805FCCCE04
     propID = 23
     searchInfo
          inInvertedIndex = false
          isColumn = false
          isColumnSparse = true
          columnIndexType = NotIndexed
          maxSize = 128
     labelInfo
          label
          sortDescription
          invitationText
          hideLabel = false
     typeInfo
          type = Boolean
          groupingRange = Discrete
          isInnate = false
          canBePurged
          multipleValues = false
          isGroup = false
          aggregationType = Default
          isTreeProperty = false
          isViewable = false
          isQueryable = false
          includeInFullTextQuery = false
          conditionType = String
          defaultOperation = Equal
     aliasInfo
          sortByAlias = None
          additionalSortByAliases = None
     displayInfo
          defaultColumnWidth = 20
          displayType
          alignment = Left
          relativeDescriptionType = General
          defaultSortDirection = Ascending
          stringFormat
               formatAs = General
          booleanFormat
               formatAs = YesNo
          numberFormat
               formatAs = General
               formatDurationAs = hh:mm:ss
          dateTimeFormat
               formatAs = General
               formatTimeAs = ShortTime
               formatDateAs = ShortDate
          enumeratedList
               defaultText
               useValueForDefault = False
               enum
                    value
                    text
               enumRange
                    minValue
                    setValue
                    text
          drawControl
               control = Default
          editControl
               control = Default
          filterControl
               control = Default
          queryControl
               control = Default

Remarks

PKEY values are defined in Propkey.h.

Important  If an item emits TRUE for this property, each of its child items must emit the System.Search.IsFullyContained property as TRUE to prevent those items from being deleted from the index.

Related Topics

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
This property gives a protocol handler control over the indexers crawling behavior      Thermous   |   Edit   |   Show History

These properties are for custom protocol handlers implement ISearchProtocol/IUrlAccessor.

If you have a container which has complete knowledge of the items that have changed in the store, System.Search.IsClosedDirectory and System.Search.IsFullyContained allows you to prevent incremental crawls through your hierarchy.

The way this works is that if you are a processing a root container url with complete knowledge that if the container's date hasn't changed then none of the children have changed either...aka, you are a closed container and all of your children urls are fully contained. You indicate this by emitting IsClosedDirectory for the root container.

At the end of an incremental crawl, all URLs that have not been emitted will be assumed as deleted, unless they have the IsFullyContained property on them (remember, the incremental crawl was short-circuited because the root store knew nothing was changed.)

An example: Let's say that XYZ://foobar is a root store and at any time you know that if XYZ://foobar has not changed nothing below it has changed. Your protocol handler would then do the following when processing urls:

XYZ://foobar --> IFilter should emit System.Search.IsClosedDirectory. This property tells the indexer that if nothing is changed, don't enumerate all of the child urls

XYZ://foobar/childurlN --> IFilter should emit System.Search.IsFullyContained. This property tellst the indexer that this url should not be deleted at the end of an incremental crawl because it is fully contained by the root store.

Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker