5

I am working on SharePoint server 2013 enterprise edition site collection. And I am facing some problems in understanding how do SharePoint create the following names for the site columns:-

  • Site column internal names at the list level.
  • Crawl properties names
  • Managed properties names

I got this scenario inside my Site collection:-

  • I have 2 site columns with these INTERNAL names "Software_x0020_Development_x0020_Risk_x002F_Issue_x0020_Own‌​‌​‌​‌​‌​er" & "Software_x0020_Development_x0020_Own‌​‌​‌​er" .

  • On the list level these 2 site columns go the same internal names. when I access the site columns inside the list content type i noted that they got the same internal name which is "Software_x0020_Development_x0020" , but still they have different column id.

  • Also these 2 site columns got a single crawl property which is "ows_q_USER_SoftwareDevelopment" and a single managed property which is "SoftwareDevelopmentOWSUSERUser" inside the search service.

So can anyone advice on the below, 3 questions please:-

  1. Why SharePoint create the same column names at the list level, is there any truncate that will be done automatically for the site columns internal names at the list level? and also Why it creates a single managed property and a single crawl property for these 2 different site columns "Software_x0020_Development_x0020_Risk_x002F_Issue_x0020_Own‌​‌​‌​‌​‌​er" & "Software_x0020_Development_x0020_Own‌​‌​‌​er" ???

  2. The above have created a problem inside my content search web part, because when i wrote the following query inside my Content Search web part "SoftwareDevelopmentOWSUSERUser:{User.Name}" , I got results from the two site columns since they have the same managed property and also the same crawl property. so how did SharePoint recognize that the managed property which is map to the same crawl property is referring two site columns that have different internal names?

  3. Now how is SP recognizing the relation between the single crawled property and its 2 site columns? as the crawl property name ("ows_q_USER_SoftwareDevelopment") is just a subset of the complete site columns internal names ("Software_x0020_Development_x0020_Risk_x002F_Issue_x0020_Own‌​‌​‌​‌​‌​er" & "Software_x0020_Development_x0020_Own‌​‌​‌​er" .). . weird is it ?

Thanks in advance for any help

HINT.. Now my understanding for the above is that i got this conflict because my site columns internal names are some how long,, and when sharepoint builds the crawl/managed properties it will not only remove white spaces but also will apply some character truncating ,, and since my 2 site columns have the exact characters at the beginning so this result in a single crawl/managed property representing 2 different site columns !! could this be the case??

  • Are you creating columns manually from sharepoint or by code ? – Ronak Patel Oct 13 '16 at 4:55
  • @RonakPatel tha columns i am talking about where created using the UI – john Gu Oct 13 '16 at 12:11
3
+100
  1. Your choosing of names is very unfortunate. SharePoint Lists have a 32 character limit for internal column names. It seems this is not the case for Document Libraries as explained in this BlogPost. As you pointed out "Software_x0020_Development_x0020" is exactly 32 characters. When the property is crawled the spaces (x0020) are removed and SharePoint build its crawled and managed properties using "SoftwareDevelopment". Probably the best course of action is to follow the previous answer of Ronak Patel to make sure the internal name is short. Then change back the display name into whatever you want.

  2. SharePoint identifies the two columns as the same crawled property because of point 1 and the truncating of the real Internal Name on list level. That is what actually gets crawled since a site column on its own cannot hold any data to crawl. All columns in a site that are used in lists and have the same internal name are crawled in the same crawled property. Which then is mapped to one single managed property.

  3. See 2.

  • thanks a lot for the valuable reply. so you are saying when sharepoint build the crawl properties it relies on the column internal names as defined inside the list-level and not as defined inside the site-level? if this is the case then i can understand 100% what is going on? "second question," now i do not want to start renaming site columns as this might cause problems, so if i can live with these conflicts, will this cause any exceptions/problems? i mean having the same internal names for two columns at the list-level and also having the same crawl/managed property names? – john Gu Oct 13 '16 at 12:18
  • can you please adivce on my above comment? – john Gu Oct 15 '16 at 1:11
  • 1
    I don't think it will cause any exceptions, just inconvenience. When SharePoint Search crawl something, it will always be list-level indeed. The items that are actually crawled are the contents of the list and therefor the columns of that list are part of the crawled data. Unfortunately I don't really know why SharePoint only keeps the first 32 chars of a column for a list. Maybe a performance thing. – Cas van Iersel Oct 17 '16 at 5:49
4

If there is issue of as per you said in the HINT. Then,

  • Try to create columns Software Development Risk/Issue Own‌​‌​‌​‌‌​er and Software Development Own‌​‌​‌​er without any space or special character in column title: SoftwareDevelopmentRiskIssueOwn‌​‌​‌​‌‌​er and SoftwareDevelopmentOwn‌​‌​‌​er.
  • Then your Internal Name will be created same as per the Title Given.
  • Then Update your column Title back to Software Development Risk/Issue Own‌​‌​‌​‌‌​er and Software Development Own‌​‌​‌​er. Your internal name won't be change.

So even if it will remove characters for long names, it will not affect your columns.

  • i know this very well,and currently when i create new site columns i keep them without spaces and some how short. and i know that if i update the site column names later on using the UI (by adding spaces for example) this will not affect the internal names.... but my question is about my current situation and how is sharepoint dealing with these conflicts..rather than what i need to do with it, as it will require lot of time and risks if i will chnage my site columns internal names inside our live server – john Gu Oct 13 '16 at 12:09
  • can you please adivce on my above comment? – john Gu Oct 15 '16 at 1:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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