One of the most convenient features of SharePoint Search is its ability to automatically discover crawled properties and create new managed properties. This is good because as a SharePoint administrator I don't want to have to take requests from users to set up new managed properties to search on. So basically whenever an incremental crawl occurs and the crawler discovers a new SharePoint column it will create a new crawled property and automatically create a new managed property to search against. The only unfortunate problem is that the crawler creates the new managed property with a name predicated with "ows". This is not very friendly but it is standard way for users to use the property in a keyword search, for example owsDocumentName:salaries.
This automatic managed property creation can be set in Shared Services Administration:SharedServices> Search Settings > Crawled Property Categories > Edit Category.
The "Automatically generate a new managed property for each crawled property discovered in this category" option is not checked by default. So many times clients set up their metadata and upload documents without turning this on. Many clients do want to go back and have to set up all the managed properties. So one option is to check the "Delete all unmapped crawled properties" option and click OK. This is supposed to delete all the crawled properties that are not mapped to any managed properties. After this you can do another full crawl and the crawler will rediscover the crawled properties that were deleted and generate new managed properties. Very nice. Unfortunately, this does not work for all unmapped crawled properties. I noticed there were a lot of unmapped crawled properties that were not being deleted. For instance, ows_baseName(Text). According to Microsoft only unmapped crawled properties will be deleted. You can verify this by examining the dbo.proc_MSS_DeleteCrawledPropertiesUnmappedForCategory stored procedure located in the SharedServices database.
So what is the deal here. Examining the managed properties stored in the SharedServices database in the MSSManagedProperties table, I can see a lot of managed properties that have very long PID values such as 214741802 that have their Hidden column set to true. The ows_baseName crawled property is mapped to one of these hidden managed properties called "TempTitle" and thus it could not be deleted. The SharePoint UI will not show these hidden managed properties. Why? All I know is that when I want to delete all unmapped crawled properties it should do so. The UI should show these. Apparently, Microsoft does not want users changing the mappings.
Below is a list of these hidden managed properties. Some of them look interesting. For instance, CrawlUrl or SiteContainer. I tried using some of these in a fulltextSql query but the search engine threw a "Property does not exist error". Really?
2147418028 AnchorLink
2147418033 BaseHref
2147418035 ChangeID
2147418036 CrawlObjectID
2147418090 CrawlUrl
2147418034 CRC
2147450879 DefaultProperties
2147418016 DirLink
2147418021 DirLinkSecurityUpdate
2147418020 DirLinkWithTime
2147418026 EndAnchor
2147418022 FollowAll
2147418023 FollowNone
2147418037 IndexRare
2147418039 LinkHRef
2147418040 LinkOfficeChild
2147418041 LinkOfficeChildList
2147418024 NormalizedForwardURL
2147418025 NormalizedURL
2147418042 PluggableSecurityBlob
2147418089 PluggableSecurityTrimmerId
2147418019 RedirectedURL
2147418018 Robots
2147418080 Scope
2147418027 SecurityBlob
2147418031 SecurityProvider
2147418038 SiteContainer
2147418091 Summary Description
2147418032 TempTitle
2147418029 URLAnchor
No comments:
Post a Comment