One of the new and very promising features from Microsoft Syntex is Autofill columns.
The TLDR version is that the feature allows you to define a List Column should use AI to find the best value for this metadata field.
Unfortunately, the team that created this feature either didn't know or didn't care about proper Information Architecture and thus Autofill columns can only be created as List Columns, not Site Columns, [sic]
After I notified the product team about why I has not very happy about this choice, @LeonArmston (MVP) decided to have a look at the implementation in order to figure out a way to use the Autofill columns in Enterprise solutions aka in automation scripts.
Awesome work and the blog post can be found here: Automating SharePoint Premium Autofill Columns with PowerShell - Leon Armston's Blog
I added a handful of List Columns using Autofill and assigned some values in order for the search indexer to create the crawled properties:
This also generated these managed properties:
If we compare this to a similar set of site columns you will notice that the _q_[DataType] only exists for the site columns
In most cases this isn't a big issue as we rarely map these crawled properties to managed properties anyway.
The only exception is the managed metadata column. When we are dealing with a Termstore termset that supports multiple languages we have to map the RefinableString managed property to the ows_taxid_[fieldname] crawled property. That is obviously not an option here, so we can only support the default language.
Mapping the crawled properties to managed properties
As you saw in the "Managed Properties for Autofill columns" picture the autogenerated managed properties for the Autofill columns ware neither searchable, quarriable nor retrievable. In order words, pretty useless.
In order to be able to use the properties in search (both SharePoint and Microsoft search) we must map the crawled properties to managed properties:
As I intend to use the properties in my Refiner, I have to map the properties to a "Refinable[type]" managed property
Managed Property | Crawled Property |
RefinableDate14 | |
RefinableDecimal00 | |
Once mapping has taken effect, you can set up the PnP Modern Search just as usual.
Enjoy!!
Kommentare