Friday, July 4, 2014

What makes a SharePoint column searchable?

By searchable I mean a user searches for a term, and get a search result if that term exists in a SharePoint column (without specifying a property query). Basically typing keywords in a search box.

By default when you create a SharePoint column on a list, it will generate a crawled property which is marked with Include in full-text index. This checkmark ensures you will get a hit for terms in this column. The naming of the crawled property is ows_internalColumnName.

If you look at managed properties, they have a corresponding property called Searchable. This means if your crawled property is mapped to a managed property marked as searchable, you will get recall on the column. However, if the managed property is not marked as searchable, even though the crawled property is marked with “Include in full-text” index, it will NOT be searchable.

To put it all in a table.
Crawled Property Managed Property
Included in
Full text-index
Not included in
Full text-index
Searchable Not
Searchable
Column
Searchable
x
x
x x
x x
x x
x x

Note

If a crawled property is mapped to two managed properties, where one of them is searchable, then the value will be searchable.

If a column is hidden or marked via column properties as "NoCrawl", then it will not be searchable.

Summary

In order to make a column in SharePoint not searchable, you either have to uncheck the option on the corresponding crawled property to include it in the full-text index, or map it to a managed property which is not marked as searchable.

Check out Benjamin Niaulin's post Understand SharePoint Crawled and Managed properties for search for more information on crawled and managed properties.

5 comments:

  1. What would keep a column/field/property not crawled? I'm trying to find the Publishing Image Caption.

    ReplyDelete
    Replies
    1. If the field is hidden or marked as NoCrawl. But are you getting the URL, just not the caption?

      Delete
  2. Hello Mikael ! I'm very confused
    1 - I've a "column" searchable but mapped to a not searchable "managed propery" & his "crawled property" have unchecked Include in the full-text search index
    => Used in Diplay template and it works, i used his not searchable MP but querybale
    I mean i can do MP:column

    2 - I've a "column" searchable and same as above, except it's not querybale
    I mean MP:column not show results, => so when using this MP in Display Template this does not work.

    3 - I've a "column" not searchable (and same as above) but queryable with another MP (not his MP where it'smapped to) and => when using this other MP i can show the column in Display Template

    My QS are :

    Why in 1 & 2 is searchable but thier MP(managed) & CP(crawled) are not ?
    How this can happen ?

    I think answering one can give me response to the second !

    ReplyDelete
    Replies
    1. 1: Searchable means free text search, queryable means property search. Not searchable does not impact queryable and vice versa.

      2: To do property:value it HAS to be queryable

      So, and mp being marked as queryable will allow property queries. If a mp is marked not searchable, then you cannot free text search on content from the mapped cp's.

      Delete