As we mentioned before, the Managed Metadata Service application is one of the most important and interesting new service applications in SharePoint Server 2010. However, it’s very frustrating for SharePoint users and administrations when error comes up especially if you migrated the site from one environment to another with local term store, delete the term, migrate site from one webapp to another one with different Managed Metadata Service application.
The major issues is that it’s very difficult to understand what are the relationship between all the different parts. In this blog, I’ll dive deep into the relationships between terms, hidden site, local term store, and global Managed Metadata Service application database. You should be able to understand what you should look for if you understand the relationships. We are hoping we could use this knowledge to fix some issues encountered using Managed Metadata terms.
In order to understand the details of the Managed Metadata Service application and the relationships, let’s clarify a number of concepts that you will need to familiarize yourself with. Term Store This is the database in which our managed metadata is stored in. Term is a word or a phrase that can be associated with an item in SharePoint Server 2010. Term set is a collection of related terms.
We setup one list called TestMMD on site MMTest3. Then add a managed metadata column and create term store and terms as follows. Click list TestMMD -> List Ribbon -> Create Column -> Select managed metadata -> Click Customize your term set -> Enter Term Set Name “Metadate” -> Create two terms “Term1” and “Term2”. The URL for the list is http://<servername>:<port>/sites/MMTest3/Lists/TestMMD/AllItems.aspx. See screen shot for the list with two items.
The local term store will be created when creating the term managed metadata list column. You could see the managed metadata local term sets as follows.
Site Actions -> Site Settings -> Term store management. You will noticed term store group created as “Site Collection - sbx01-12726-sites-MMTest3”. Term Set Name “Metadate”. Two term “Term1” and “Term2” as in the following screen shot.
Now view the hidden list with URL http://<server>:<port>/sites/MMTest3/Lists/TaxonomyHiddenList/AllItems.aspx that keep the relationship of the terms as in the following screen shot. We have modified the view to add columns "ID", "IdForTerm", "IdForTermSet", and "IdForTermStore".
I would recommend you to pay attention to the TaxonomyHiddenList since it is the key to explain the relationship of the terms. You could click list on the Ribbon and click “Open with Access”. You can click “Database Tool” and click “Relationships” from the ribbon. Now you will see the relationships for the terms as in the following screen.
Now you will see the hidden column “Taxonomy Catch All Column” is a look up column pointing to TaxonomyHiddenList to look for terms. The TaxonomyHiddenList columns "IdForTerm", "IdForTermSet", and "IdForTermStore" are pointing to managed metadata service application database tables.
1. IdForTermStore value e2c31d84-3f0a-4c92-9acb-8929f59d075b is point to the database table GUID that will change for different managed metadata services or if you migrate from one farm to another.
2. IdForTerm values 25DEEB80-3336-42EB-A19D-696ED11B976B and 476BAE73-C78C-4F9C-81CF-387631DE78F6 can be queried form table ECMTerm
3. IdForTermSet value 63BB6778-545C-4284-8E3C-D4395A292222 can be queried from table ECMTermSet.
UniqueId Owner Name
63BB6778-545C-4284-8E3C-D4395A292222 NA\harryc 1033|Metadate
You could see all these relationships from the database table screen shot.
Now, you will understand the following issues you might have.
1. If you move one list from different site collection to another, the term will break since it will not find the lookups from the correct TaxonomyHiddenList. The previous lookup GUID will point to old lookup value.
2. If you delete the site collection and backup it again. The term will have the same lookups to TaxonomyHiddenList. However, the new site collection will have new local term store GUID.
3. If you delete the managed service application and recreate again, the term store HUID changed.
4. If you migrate the site content DB and managed metadata database from one farm to another, you might still have links broken somewhere.
We are in the progress to evaluate all the proposal suggested to finalize the procedure how to link back the local terms to managed metadata database. We will keep you posted whence we have the good approach. Please refer to other blog on managed metadata service.