Click to Rate and Give Feedback
MSDN
MSDN Library
User Interface
Windows Shell
Shell Reference
Shell Properties
Search
 System.Search.IsClosedDirectory
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 .zip folder), 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   |  

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
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker