I am trying to provision a few site columns to be used by a metadata term store. So far, I can CRUD list items and choose terms for each taxonomy field I have in my list.
Now I am trying to build a custom search page for my solution with a refiner web part that has a refiner for each of my taxonomy fields. For this, I go to Central Administration -> Manage Service Applications -> Search Service Application -> Search Schema
and look up my crawled properties so I can map it to a managed property and reference that in turn in my refiner web part (I created at least one list item and did a full crawl before doing this). However, I only find one crawled property. Only the one "ows_<Column_Name>"
is there, the other "ows_taxId_<Column_Name>"
seems to have not been generated during the full crawl.
I am unsure why, I have already tried multiple naming schemes for the note field accompanying the taxonomy field, including:
- Setting
StaticName
andName
properties of note field to GUID of taxonomy field - Setting
StaticName
andName
properties of note field to GUID of taxonomy field, replacing the first character with 'p' (I saw this in Sharepoint Manager after creating a test list with tax column from UI) - Setting
StaticName
andName
properties of note field to<Column_Name>TaxHTField
of taxonomy field - Setting
StaticName
andName
properties of note field to<Column_Name>TaxHTField0
of taxonomy field - Setting
StaticName
andName
properties of note field to<Column_Name>_0
of taxonomy field
Needless to say, none of the above solved my issue. So I am currently out of solutions and become to supsect that something else is wrong.
Anyway, here is my Schema.xml of my list containing the tax fields (unecessary stuff removed for clarity):
<Field Name="PE6C254B595E4F4BB848871B5F86F104" ID="{C33BBE02-118A-48E0-8D9C-DE684D35956A}" Type="Note" ShowInViewForms="FALSE" Required="FALSE" Hidden="TRUE" />
<Field Name="UserDefined" ID="{DE6C254B-595E-4F4B-B848-871B5F86F104}" Type="TaxonomyFieldTypeMulti" ShowField="Term1031" Required="FALSE" EnforceUniqueValues="FALSE" Version="1" Mult="TRUE" Sortable="FALSE">
<Customization>
<ArrayOfProperty>
<Property>
<Name>TextField</Name>
<Value xmlns:q6="http://www.w3.org/2001/XMLSchema" p4:type="q6:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">{C33BBE02-118A-48E0-8D9C-DE684D35956A}</Value>
</Property>
<Property>
<Name>SspId</Name>
</Property>
<Property>
<Name>TermSetId</Name>
</Property>
</ArrayOfProperty>
</Customization>
</Field>
So can anyone see a problem why my tax field won't generated the taxId crawled property?
EDIT: This is hopefully the solution:
<Field Name="UserDefined"
StaticName="UserDefined"
ID="{DE6C254B-595E-4F4B-B848-871B5F86F104}"
Type="TaxonomyFieldTypeMulti"
DisplayName="$Resources:Tags;"
ShowField="Term1031"
Required="FALSE"
EnforceUniqueValues="FALSE"
Mult="TRUE"
Sortable="FALSE"
ShowInDisplayForm="FALSE"
ShowInEditForm="FALSE"
ShowInNewForm="FALSE">
<Customization>
<ArrayOfProperty>
<Property>
<Name>TextField</Name>
<Value xmlns:q6="http://www.w3.org/2001/XMLSchema" p4:type="q6:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">{C33BBE02-118A-48E0-8D9C-DE684D35956A}</Value>
</Property>
<Property>
<Name>SspId</Name>
</Property>
<Property>
<Name>TermSetId</Name>
</Property>
</ArrayOfProperty>
</Customization>
</Field>
<Field Name="UserDefinedTaxHTField0"
StaticName="UserDefinedTaxHTField0"
ID="{C33BBE02-118A-48E0-8D9C-DE684D35956A}"
Type="Note"
DisplayName="$Resources:TagsHidden;"
ShowInViewForms="FALSE"
Required="FALSE"
Hidden="TRUE" />