1

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:

  1. Setting StaticName and Name properties of note field to GUID of taxonomy field
  2. Setting StaticName and Name 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)
  3. Setting StaticName and Name properties of note field to <Column_Name>TaxHTField of taxonomy field
  4. Setting StaticName and Name properties of note field to <Column_Name>TaxHTField0 of taxonomy field
  5. Setting StaticName and Name 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" />
2
  • Hello @LeonidasFett, Did you found any solution for this? I am facing same issue May 24, 2021 at 7:38
  • Hey @BharatKhunti, please take a look at my answer. I have no idea what I did to make this work. I can just give you the field definitions and hope that they work as they are. If it doesn't work, give me another comment here, I will try searching for some code behind stuff where I modify these fields. May 25, 2021 at 14:33

1 Answer 1

0

I had the same problem in SharePoint 2013, and for me the solution was your option #3: setting StaticName and Name to <Column_Name>TaxHTField for the Note field. To give you an example, these are some of the attributes in Schema.xml:

<Field Type="Note" DisplayName="my_Field_0" StaticName="my_FieldTaxHTField" Name="my_FieldTaxHTField" ID="{bdf90102-5407-475a-ae73-ec0b8d712ff1}" />
<Field Type="TaxonomyFieldTypeMulti" DisplayName="My Field" StaticName="my_Field" Name="my_Field" List="Lists/TaxonomyHiddenList" ShowField="Term1033" ID="{d3d49415-d87a-4921-807b-6e508df9f207}" Mult="TRUE" ></Field>

Make sure to set the SspId and TermSetId (see similar question How to set Termset on managed metadata field in XML?), and also have some data in your field before running a full crawl. Hope this helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.