Sharing the experience search

Search sharing-the-experience.blogspot.com
Showing posts with label Taxonomy. Show all posts
Showing posts with label Taxonomy. Show all posts

Monday, April 28, 2014

Why term set pop up doesn't have "Add new item"

One of the common confusions using term store in SharePoint is:
 #1. who can contribute (add new items) to the term set?
 #2. why the term set pop doesn't have "add new item"?
As in this example:


Here is the mystery solved:
for #1. Who can contribute to the term set?
In Term Store (_layouts/15/termstoremanager.aspx) you have Term set group to which you can assign access to contribute by adding a user to:
1. Group Managers (high privileged)
2. Contributors

More here : Manage permissions and roles for term sets

for #2.why the term set pop doesn't have "add new item"?
Make sure that:
1. a user has permissions to contribute (see above)
2. the term set submission policy it open
3. the managed metadata column in the list has "Allow Fill-In" - Yes


Friday, March 28, 2014

Managed metadata: 5 things that you wish you knew before using term store management tool in SharePoint

My recent posts are more on the darker side. I see the mistakes, issues and flaws in SharePoint, as well as in working with SharePoint.
It doesn't mean that SharePoint is getting worse, it just means I am getting better). I know more, I see more.
Last couple of years, I was working on understanding how to use SharePoint right. Where SharePoint is helpful, what feature is more appropriate for the specific use case. 
Finally, I have figured out where Managed metadata can bring value. 
More on that:

I have implemented managed metadata, and have used it successfully to improve findability in the portal.
Nevertheless, working with managed metadata in the real world portal highlights some flaws that currently exist in Term Store management implementation.

1. No history, no versioning
There is no way to see changes made in the term store, nor you can't revert changes.

2.No author of the term
The term doesn't have an author field. So, there is now way to know who created or modified and when the term.

3. No usage (where value is used)
Being in the term store you can't trace where the term has been used.

4. No UI to backup\restore
What you can do is to reach out for PowerShell to export term to backup it.

5. No sync options in case of Hybrid Cloud Architecture
There is no way to maintain term store in sync between 2 farms: on-prem and SharePoint Online

These 5 things can be easily significant in the large implementation of the SharePoint. I hope that you know them before making decision. And it doesn't mean that these facts stop you, but you will be better equipped to set the expectations right.

Wednesday, February 19, 2014

SharePoint Architecture: Role of Enterprise Taxonomy in IA

The single most important task of a SharePoint is to find information.

There are 2 main strategies to achieve this:
       1. Train people look for information in one particular spot.
Like in a real world, in the grocery market, you want to find an apple, you go to Fresh Produce aisle.
       2. Make information searchable the way the people usually search such kind of information.
Like in Internet, whenever you have got a question, you just google it. You don’t need to know where the information is stored, as long as you remember how to reach a search engine, and as long the data is searchable.



In SharePoint world there is a combination of two these strategies that in the end gives rise to Information Architecture.

To put it simply, SharePoint Information Architecture is:
       1. Sites and libraries organization and structure;
       2. As well as, metadata and managed metadata.

Since SharePoint 2010 SharePoint Information Architecture got richer, thanks to a new feature – Enterprise Taxonomy.

Corporate taxonomy is the hierarchical classification of entities of interest of an enterprise, organization or administration, used to classify documents, digital assets and other information.

Right implementation of Enterprise Taxonomy provides common language within the company, across departments.

Mutual agreement on the meaning of words in Enterprise dictionary simplifies the process of:
1. Information tagging
2. Information retrieving


As you can see, Enterprise taxonomy plays crucial role in finding information in portal.

I hope this bird eye overview helps you to identify business problem areas that can benefit from Enterprise Taxonomy implementation.

Read more on Taxonomy ideas and technical challenges


Wednesday, October 9, 2013

SharePoint Online manual migration: Managed Metadata issues

I have just finished SharePoint Online manual migration. And this post is all about migration Term Store and the managed metadata columns.

So, you have got a term set on-prem.

How do you migrate the term set to SharePoint Online? 

In case of migration to SharePoint Online manually, the only option you left with - is Import CSV file of term set to the destination - SPOnline.

The provided PowerShell script exports the term site into CSV file on-prem in order to import it in SharePoint Online.

The pitfall of importing CSV file , you can't specify child-parent relationship between term sets.

Another issue that I have discovered that there is no way to copy over Keywords, since it's a system term set. So, in case you need them from on-prem either you should re-type them manually or (much better option) a buy a 3rd party tool for SharePoint migration.

And finally, the BIG ISSUE of manual migration of managed metadata:

Imported terms will get a different GUID than terms on-prem. That means, every list that has managed metadata  after migration should be updated manually with valid imported term.

To sum up, if you have used Taxonomy, Folksonomy extensively in your on-prem, the best approach to migrate is to use 3rd party tools for SharePoint migration

Taxonomy, Folksonomy. What is it and why we should bother?

A taxonomy is a hierarchical classification of words, labels, or terms that are organized into groups based on similarities.

You can represent your corporate taxonomy by using managed metadata.
Managed metadata is a hierarchical collection of centrally managed terms that you can define, and then use as attributes for items in Microsoft SharePoint Server 2010.
See:



​ Taxonomy is the key: Managed Metadata can drive navigation, discovery, relation, and re-usability of content.
  Managed Metadata provides a common vocabulary and can connect people to social networks.
   Managed Metadata columns promote the consistent use of metadata across sites because they provide users with a list of terms that they can apply to their content. 
 Taxonomy tags are added by the content creator or author. Most typical blogs will have a tag cloud – this is a good example of a Taxonomy.
Folksonomy tags are added by the consumer or reader (not the content creator).  So Flickr keywords – where the user can add their own tags / keywords describing a photo – is a good example of a Folksonomy.
A folksonomy-based approach to metadata can be useful because it taps the knowledge and expertise of site users and content creators and it enables content classification to evolve with the users’ changing business needs and interests. 

Friday, September 14, 2012

Term store migration to another farm

Your task is to migrate a content db to another farm. For this you can refer to the post How restore a SharePoint 2010 content database on the different farm

But in case you have managed metadata column somewhere in your web application, you will soon discover that they lost related term set which is expected.

The term store is not stored in the content database. It's a responsibility of the Managed Metadata Service.

You question - how can I migrate term store from one farm to another?

Here is what I found useful to read and use:

Migrating managed metadata term sets to another farm on another domain - the article clearly explains what happens with metadata value in the columns when you restore content db on the another farm. Essentially, you will not loose metadata value in the lists, but you can't use it further until you migrate related term store.

Article also provides a means to migrate your term set and how do you reconnect the term store to the content via PowerShell - http://sptermstoreutilities.codeplex.com/


Here is my 2 cents in it:

Instead of using http://metadataexportsps.codeplex.com/ for UI export\import of term store, you can use a PowerShell from Laponte - a PowerShell SharePoint guru - Exporting and Importing SharePoint 2010 Terms. The navigation on his blog  is a little bit confusing - the extended powershell comands are bundled in one Lapointe.SharePoint2010.Automation.wsp on http://blog.falchionconsulting.com/index.php/downloads/

In case you want to know how to use PowerShell in SharePoint -Simple concept: How to use SharePoint cmdlets in PowerShell ISE


ATTENTION:
If you have reused terms in the termset, make sure the order in the export file the following:
Parent, then Child
In this example, the term set Customers reuse terms from the first level of the term set Projects. In the initial file that I have exported, the customer set goes first before the project.
If I try to export this file via Import-SPTerms , I will get an error.
I need to change the order of the terms beforehand and them import the file.


P.S.

For SPOnline migration I believe you have only one option is to export via csv . I wonder what about exporting reused terms. I can't see the int csv file to specify it....

Thursday, September 13, 2012

Simple Concept: How to search by managed metadata field or term?

[Question]: I have created a term and used it in managed metadata column. How can I search by term value to find any place where such term has been used?

For an example,
I have a managed metadata column "Project Tags" in the library.
I have an item in the library with value "eReview" in the Project Tags column.
I want to be able to search by eReview to find that item




[Answer]:
Once you have created a managed metadata column, you have to run a crawl.
Crawl will automatically  create a crawled property and managed property that look at the managed metadata column.

What you have to do is to check "Include values for this property in the search index". It will give ability to search by term title in the search.

In case you need to search byTerm id, use  a managed property value like this:

Where owsTaxIdProject is a managed property and term id - the actual term of id (in this case -  eReview).

You may ask 2 questions at this time:
1 . Why I need to search by Term id?
 - You may want to build a custom webpart to show all related content based on the select term.
2.  How do I know Term id?
One way to find a term id  is to go to the site collection hidden list Lists/TaxonomyHiddenList
Other popular option is to use seach refiner with the term that is interesting for you:
Select the value in the refiner and then look at the url of the search page:

Easy way to decode this - URL Decoder/Encoder



ATTENTION:
If you have several metadata columns in the several lists that look at the the same term set, but you call them differently (internal names in the different lists are not the same), the crawler will create several managed properties.
You want them unite. Find all crawled properties that have been created based on your managed metadata.

Hint: name of crawled property has a pattern. ows prefix means - custom metadata, taxId - refers to the type of column- Managed metadata. Hence you can find your all crawled managed metadata columns by searching withing crawled properties by name taxId.

And then map the crawled properties to the one Managed property.



Good luck with Taxonomy!

Tuesday, September 11, 2012

Get Term Id from Managed Metadata Field in a Sandbox Solution


You are developing a sandbox solution where you want to work with Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue.

You have noticed that you have an exception:

The exception is : System.RunTime.Serialization.SerializationException
Message : Type 'Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue' in Assembly 'Microsoft.SharePoint.Taxonomy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' is not marked as serializable.
Server stack trace: 
   at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
   at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
   at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.SerializeResponse(IServerResponseChannelSinkStack sinkStack, IMessage msg, ITransportHeaders& headers, Stream& stream)
   at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)


You question: How do I get a value from managed data field?

Microsoft.SharePoint.Taxonomy.dll is not allowed in sandbox solution and that's why you're getting an exception. You can get string value of managed metadata field by calling GetFormattedValue.

But doing so, you will get a value from managed metadata field. 

var relatedNoteFldStaticName = {You metadata column static name}+"0";
item[ relatedNoteFldStaticName  ]

What it does - it pulls the related hidden notes field where Term Id is stored (SPSiteDataQuery in Sandboxed solution with multivalued metadata column)