Using Folksonomy fields in PnP Modern Search
- Kasper Larsen
- May 23
- 2 min read
In the PnP Modern Search repository, we recently received a question about how to set up an Enterprise Keyword column as a refiner. I wrote about it in this article
While I have been familiar with Enterprise Keywords since the on premises days, I haven't used this feature in several years, and the question got me wondering why not.
Why I prefer a Folksonomy over the Enterprise Keyword feature

When you enable the Enterprise Keyword feature on a number of libraries, perhaps
across multiple sites, ALL the added values are created as terms in just ONE termset in the Term store.
That means the termset contains lots of potential disjoined values, in this case the termset contains a mix of car brands, animals, bands and colors.
There might be cases where this approach makes sense, but I prefer the values to be related, so I prefer a Folksonomy.
So, what is a Folksonomy ?
In SharePoint, a folksonomy refers to a collaboratively created, non-hierarchical system for classifying content where users add tags or keywords to items. This differs from a taxonomy, which is a formal, structured system managed by administrators.
When will you use a folksonomy over a regular managed metadate field?
In most cases you know enough about the values that should be available in the field, and then you should create a regular managed metadate field. However, in some rare cases you don't know the expected values and you will prefer that the end users enter whatever makes sense for them.
Usually, you will review the values in the termset after a set periode, clean up any typos and duplicates, and close the termset.

The TLDR is: a Folksonomy is similar to a generic managed metadata field, except that the associated termset is configured to be open rather than closed:

When you setup the managed metadate as a site column (because list columns
are evil, right?) you will notice that we now have the option to allow the users to type new values :-)
However, the interface is not obvious, and you might have to train your users to create new tags/terms. As you can see below, the users will have to click the 3 vertical dots to create a new value

And remember that you should map the ows_taxid_XXXX crawled property to a RefinableString when you want to use this column as a search refiner ;-)