3/05/2015

SharePoint 2013 Search File Extensions

 

Just a simple list of file extensions that have some kind of default support in the SharePoint 2013 Search Service.

FH = SharePoint 2013 has a File Handler and can index the content of this file.
FT = Is included in the default on premises File Type List.
365 = Is included in the Office 365 / SharePoint Online File Type List. (as of 3/5/15)

Extension

FH

FT

365

Type

MimeType

.ascx

 

x

x

ASP.NET Control

 

.asm

 

x

x

ASP Web Service

 

.asp

 

x

x

ASP web page

 

.aspx

 

x

x

ASP.NET web page

 

.csv

 

x

x

Comma separated values

 

.cxx

 

x

x

   

.def

 

x

x

   

.doc

x

x

x

Microsoft Word

application/msword

.docm

x

x

x

Microsoft Word

application/vnd.ms-word.document.macroEnabled.12

.docx

x

x

x

Microsoft Word

application/vnd.openxmlformats-officedocument.wor...

.dot

x

x

x

Microsoft Word

application/msword

.dotm

x

   

Microsoft Word

application/vnd.ms-word.template.macroEnabledTemp...

.dotx

x

x

x

Microsoft Word

application/vnd.openxmlformats-officedocument.wor...

.eml

x

x

x

Email Message

message/rfc822

.gif

x

x

x

Graphics Interchange Format

image/gif

.html

x

x

x

Web Page

text/html

.infopathml

x

   

Microsoft InfoPath

text/xml

.jpg

x

   

JPEG

image/jpeg

.jsp

 

x

x

Java server page

 

.mht

x

x

x

Web Archive

multipart/related

.mhtml

 

x

x

Web page archive format

 

.msg

x

x

x

Outlook Item

application/vnd.ms-outlook

.nws

 

x

x

   

.obd

x

   

Microsoft Office Binder

application/vnd.ms-binder

.obt

x

   

Microsoft Office Binder

application/vnd.ms-binder

.odc

 

x

x

Office Data Connection File

 

.odp

x

x

x

OpenDocument Presentation

application/vnd.oasis.opendocument.presentation

.ods

x

x

x

OpenDocument Spreadsheet

application/vnd.oasis.opendocument.spreadsheet

.odt

x

x

x

OpenDocument Text

application/vnd.oasis.opendocument.text

.one

x

 

x

OneNote

application/msonenote

.pdf

x

x

x

PDF

application/pdf

.pot

x

   

Microsoft PowerPoint

application/vnd.ms-powerpoint

.potm

x

   

Microsoft PowerPoint

application/vnd.ms-powerpoint.template.macroEnabl...

.potx

x

   

Microsoft PowerPoint

application/vnd.openxmlformats-officedocument.pre...

.ppam

x

   

Microsoft PowerPoint

application/vnd.ms-powerpoint.addin.macroEnabled.12

.pps

x

   

Microsoft PowerPoint

application/vnd.ms-powerpoint

.ppsm

x

   

Microsoft PowerPoint

application/vnd.ms-powerpoint.slideshow.macroEnab...

.ppsx

x

   

Microsoft PowerPoint

application/vnd.openxmlformats-officedocument.pre...

.ppt

x

x

x

Microsoft PowerPoint

application/vnd.ms-powerpoint

.pptm

x

x

x

Microsoft PowerPoint

application/vnd.ms-powerpoint.presentation.macroE...

.pptx

x

x

x

Microsoft PowerPoint

application/vnd.openxmlformats-officedocument.pre...

.pub

x

x

x

Microsoft Publisher

application/x-mspublisher

.rtf

x

   

Rich Text

text/rtf

.txt

x

x

x

Text

text/plain

.vcf

x

   

vCard

text/x-vcard

.vcs

x

   

vCalendar

text/x-vCalendar

.vdw

x

x

x

Visio

application/vnd.visio

.vdx

x

x

x

Visio

application/vnd.visio

.vsd

x

x

x

Visio

application/vnd.visio

.vsdm

x

x

x

Visio

application/vnd.ms-visio.drawing.macroEnabled

.vsdx

x

x

x

Visio

application/vnd.ms-visio.drawing

.vss

x

x

x

Visio

application/vnd.visio

.vssm

x

x

x

Visio

application/vnd.ms-visio.stencil.macroEnabled

.vssx

x

x

x

Visio

application/vnd.ms-visio.stencil

.vst

x

x

x

Visio

application/vnd.visio

.vstm

x

x

x

Visio

application/vnd.ms-visio.template.macroEnabled

.vstx

x

x

x

Visio

application/vnd.ms-visio.template

.vsx

x

x

x

Visio

application/vnd.visio

.vtx

x

x

x

Visio

application/vnd.visio

.xlb

x

 

x

Microsoft Excel

application/vnd.ms-excel

.xlc

x

 

x

Microsoft Excel

application/vnd.ms-excel

.xls

x

x

x

Microsoft Excel

application/vnd.ms-excel

.xlsb

x

x

x

Microsoft Excel

application/vnd.ms-excel.sheet.binary.macroEnable...

.xlsm

x

x

x

Microsoft Excel

application/vnd.ms-excel.sheet.macroEnabled.12

.xlsx

x

x

x

Microsoft Excel

application/vnd.openxmlformats-officedocument.spr...

.xlt

x

 

x

Microsoft Excel

application/vnd.ms-excel

.xml

x

x

x

XML Document

text/xml

.xps

x

   

Microsoft XML Paper Specification

application/vnd.ms-xpsdocument

.zip

x

x

x

ZIP Archive

application/zip

 

Notes:

  • SharePoint indexes all content in a site, even if not in the File Types list. You can search for any of the data in the columns of the library to find the file. For example you can search for "jpg" and find everything that has jpg in the filename, description, or other column. You can't search for the file using "filetype:jpg" though.
  • If the file extension is added to the File Types list then SharePoint treats the item as a "file" and you can then search using "filetype:jpg".
  • If the file extension is in the File Types list AND there is a Format Handler or iFilter then the content of the file will also be indexed.
  • You can dump the list of installed Format Handlers using this PowerShell script:
    • $ssa = Get-SPEnterpriseSearchServiceApplication
      Get-SPEnterpriseSearchFileFormat -SearchApplication $ssa | ft –AutoSize
  • The above list of files has nothing to do with Blocked File Types (files users cannot upload)
    https://technet.microsoft.com/en-us/library/cc262496.aspx
  • Default crawled file name extensions and parsed file types in SharePoint Server 2013
    https://technet.microsoft.com/en-us/library/jj219530.aspx
  • HOW TO: Implement a custom iFilter in SharePoint 2013
    http://blogs.technet.com/b/sharepointdevelopersupport/archive/2013/05/13/how-to-implement-a-custom-ifilter-in-sharepoint-2013.aspx

3/03/2015

SharePoint 2013 Search Spelling Suggestions Confusion?

 

Over the last three months I have been working on a Search Administration class that has a focus on improving the end user search experience. If you have attended one of my governance classes or consulting sessions then you have heard me preach on the need for a "Search Administrator". If you are interested in this area of administration then check out my new class: Microsoft SharePoint 2013 Search Administration. The next class is 3/11/15!

SharePoint 2013 search is not always well documented. As an example, read the description of Search Spelling Suggestions here: https://technet.microsoft.com/en-us/library/jj591607.aspx While very factual, it just does not tell me enough…

So off to the blogs…

First problem is that it seems a lot of people mix up Search Query Suggestions and Search Spelling Suggestions. They are not the same! Query Suggestions are offered while the user types in the search box. Spelling Suggestions are offered only in the search results pages, after the user executes the search.

A Spelling Suggestion:

image

(“corydoras” is kind of catfish. Smile)

 

Second problem? It seems due to the lack of extensive documentation that a lot of people are guessing.

  • One blog says that "only the first level of Terms is taken into account".
  • One even said that spelling suggestions could be used to map between terms. (Must have been thinking about Query Suggestions.)
  • Another says that while searching for a term found in the second level of a term set, and no items are found, that the parent level's term will be offered as the suggestion.
  • Some call the Query Spelling Inclusions term set the "Static" dictionary.

All of those are wrong.

 

Here's what my trial and error has found:

  • There are four sources for spelling suggestions:
    • The default static spelling dictionaries (static out of the box dictionaries).
    • The default dynamic spelling dictionary (dynamically generated from your content). This is also called a "content-aligned spelling dictionary".
    • The Query Spelling Inclusions term set (manually entered).
    • The Query Spelling Exclusions term set (manually entered).
  • Spelling suggestions are based on the closest matches in the default spelling dictionaries and the Query Spelling Inclusions list. Only one suggestion will be displayed. It appears that a phonic / sound alike match is being used, so the properly spelled and misspelled words must be similar in length and pattern.
  • You can’t edit the default static or dynamic spelling dictionaries.
  • Static dictionaries
    • The static dictionary is a canned list of words. (Something like the Word dictionaries.)
    • The user can change the language dropdown and see words from another language.
  • Dynamically created dictionaries
    • The dynamic dictionary is created by search as content is indexed. I.e. it's based on words commonly found in your content.
    • The user can change the language dropdown, but this does not change offered words (at least from my testing).
    • Support for dynamically created dictionaries depends on the language. See https://technet.microsoft.com/en-us/library/jj219499.aspx
    • For dynamic spelling correction to work, you should have at least several thousand medium-sized documents. The default settings require that a word occur in at least 1000 documents to be included in the dictionary.
    • The dynamic dictionary is updated once a night and can be a long running process. (The default timeout is 6 hours!)
  • Query Spelling Inclusions / Exclusions
    • You must have a configured Managed Metadata Service.
    • The terms must be added to the auto-created Query Spelling Inclusions term set.
    • You manually enter a list of words into an include or exclude list of terms.
    • You can only include single words, not phrases in the term sets.
    • While sub-terms can be entered, they are treated no differently than top level terms. (Some documentation says they are ignored.) Some documentation says terms at the same sublevel can be used as “Do you mean”, but testing does not show this.
    • It may take ten minutes or more for updates to the term sets to show up in search results. (Search Custom Dictionaries Update timer job)

As there are a number of articles about adding words to the Query Spelling Inclusions term set using Managed Metadata Services, code and PowerShell, I will not cover that here.


 

What about the options available in the PowerShell commands?

There are two PowerShell cmdlets that can be used to manage the on premises SharePoint's spelling options. Again the TechNet article is factual, but not too clear on the Static vs. Dynamic topic.

    Get-SPEnterpriseSearchQuerySpellingCorrection
    Set-SPEnterpriseSearchQuerySpellingCorrection

Note: These cmdlets are currently only for on premises SharePoint. It looks like Office 365 is set to use the Dynamic dictionary.

You can see the spelling suggestion options using:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    Get-SPEnterpriseSearchQuerySpellingCorrection -SearchApplication $ssa

    image

SpellingDictionary = Static / Dynamic

Many of the blogs state that you can choose either Static or Dynamic as the SpellingDictionary value, and that by selecting one of these you would exclude your manually entered Query Spelling Inclusions . The confusion seems to be around the definitions of the words Static and Dynamic. My testing shows that:

  Dynamic = use the list of words found in your content, plus the Query Spelling Inclusions term set

  Static = use the static built-in / out of the box dictionary, plus the Query Spelling Inclusions term set

As an example, I do not have "SharePoint" or "SharePint" in my Query Spelling Inclusions term set, but I do have "corydoras". When I do a search for "SharePint" I get the following only when SpellingDictionary is set to Static: (this word is in the canned dictionary)

    image

When searching for a term in the Query Spelling Inclusions term set like "corydoras" I get results regardless of if SpellingDictionary is set to Static or Dynamic.

    image

Why don't I get any help when SpellingDictionary is set to Dynamic and I search for "SharePint"?

    image

Take a look at the TermFrequencyThreshold property. Using the defaults SharePoint would need to find at least 1000 documents that contain the word "SharePoint". My testing sample set of documents is not quite that big. If I change it from 1000 to 20 and run the "Spelling dictionary update" timer job then I can start to get useful results from "Did you mean?" for "SharePint". (i.e. "SharePoint" was in at least 20 of my sample documents.)

    image

 

 

Note: Using PowerShell to change from Static to Dynamic, or the reverse, immediately impacts user searches.

 

Additional Links of Interest

This article, Search in SharePoint 2013 knowledge articles for Systems Center Operations Manager, hints at more details about the search spelling suggestions feature.

The spelling related timer jobs are listed in this page: Timer job reference (SharePoint 2013)

.

3/02/2015

SharePoint: Create a View for Only Last Month

 

You have to learn some real tricks to get views filtered just the way you want, especially with dates. Dates are fun in that the filter can only compare a date column to an exact date or [Today]. Here's two examples that should get you a start on a wide range of date related filters.

 

Just Last Month Please

What we need: Only the items where some date is during the last full month. Not 30 days ago, but between the first and last day of last month.

 

Create two new columns

These two columns calculate the range of dates to show this item. So to figure this out, stop thinking about this month and last month and think about when do you want an item with a certain date displayed. If the item has a date of 2/14/2015 then we want it displayed from 3/1/2015 to 3/31/2015.

For this example the date column we are testing against is named TheDate. (Creative huh!)

Column 1:  (to calculate the first day of the month after TheDate)

  Name: StartDisplayDateForLastMonth
  Type: Calculated
  Formula: =DATE(YEAR(TheDate),MONTH(TheDate)+1,"1")
  The data type returned from this formula is:  (o) Date & Time
  Date and Time Format: (o) Date Only

Column 2:  (to calculate the last day of the month after TheDate)

  Name: EndDisplayDateForLastMonth
  Type: Calculated
  Formula: =DATE(YEAR(TheDate),MONTH(TheDate)+2,0)
  The data type returned from this formula is:  (o) Date & Time
  Date and Time Format: (o) Date Only

Here's a screen shot of the first column. (click to enlarge)

    image

 

Create the View

Create a view with your usual choice of columns, but not the two we just added. You may want to add these columns for test though.

    image

Display and test the view!

 

How does it work?

=DATE(YEAR(TheDate),MONTH(TheDate)+1,"1")

DATE needs three values, a year number, a month number and a day number. The first two are easy, if you know a weird fact. YEAR() returns the year number (2015) and MONTH() returns the month number (3). Obviously MONTH()+1 is next month… but what about when it's December plus 1? That's the weird fact. Month 13 bumps up the year value!  So DATE(2014,13,5) is 1/5/2015. The 1 at the end of the formula is for day "1" of the month. Don't believe me? Fire up Excel and play around with the DATE function.

=DATE(YEAR(TheDate),MONTH(TheDate)+2,0)

This one depends on another weird fact… day zero is the last day of the previous month!  DATE(2015,3,0) is actually 2/28/2015. And of course, DATE(2016,3,0) is 2/29/2016! So what we are doing here is calculating a date 2 months minus one day in the future.

Bonus! What's the date of the 250th day of the year?  =DATE(2015,1,250) or 9/7/2015.  (I guess that would also be January 250th, 2015!)

 

What about next month?

Just a slightly different formula.

For the start date: =DATE(YEAR(TheDate),MONTH(TheDate)-1,"1")

For the end date: =DATE(YEAR(TheDate),MONTH(TheDate),0)

 

What an easy way to create these?

Fire up Excel! (And see this article: http://techtrainingnotes.blogspot.com/2010/08/sharepoint-creating-calculated-column.html)

Have fun!

 

.

3/01/2015

SharePoint 2013 Query Suggestion Files

 

Over the last three months I have been working on a Search Administration class that has a focus on improving the end user search experience. If you have attended one of my governance classes or consulting sessions then you have heard me preach on the need for a "Search Administrator". If you are interested in this area of administration then check out my new class: Microsoft SharePoint 2013 Search Administration.

I have been experimenting with SharePoint 2013 search Query Suggestions and found that there are some interesting aspects of the import files that don't seem to be documented anywhere.

  • One phrase per line.
  • The “Always Suggest” file does not need quotes, but they are acceptable.
  • The “Never Suggest” file must have quotes around multiword phrases.
  • Files can have blank lines.
  • Files with duplicates cannot be uploaded.
  • The order of the phrases is not important. The phrases will be sorted in the dropdown. For that matter, if you import the file and then export it, the items are in alphabetical order.
  • It's a good idea to keep your own backup of the files. Do not depend on the export as the order has been changed. You may also want to keep a "documented" version of the file with some comments. (Remember to remove the comments before uploading!)

I tried most of the ways to add comments, but none of them worked. You may want to keep two copies of your suggestion files, one with comments and one without.

Example of an Always Suggest file:

image

Example of a Never Suggest file:

In this example we are hiding common misspellings learned by search's automatic query suggestions. We are also dealing with the fact we don’t have a "Cincinnati region". It’s really the South Western Ohio Region.

image

 

Tip: If you are working with an on premises SharePoint 2013 then you could add a thesaurus entry to expand the user's search for "Cincinnati Region" to include "South Western Ohio Region". 

.

2/22/2015

Add JavaScript to Quick Launch in a 2010 Publishing Site

 

Note: The following will work in SharePoint 2010. For SharePoint 2013 you will need to use PowerShell. See here: http://techtrainingnotes.blogspot.com/2015/02/working-with-quick-launch-from.html

 

When you attempt to add a link that does not look like a URL to a SharePoint 2010 Publishing site you will get an error message like this one:

    image

The example above works perfectly with a non-Publishing site. What's different? The dialog box being used to do the edit.

The Work Around?

Cheat! Use the old editor for Quick Launch! (This will not work in SharePoint 2013.)

Go to your publishing site and then edit the URL in the browser's address bar so it points to _layouts/quiklnch.aspx

Something like http://yourServer/sites/yourPublishingSite/_layouts/quiklnch.asp

Click New Navigation Link or New Heading and add your JavaScript!

    image

And there you go!

For a SharePoint 2013 workaround using PowerShell see:

 

.

Working with Quick Launch from PowerShell

 

The following will work with both SharePoint 2010 and 2013. It will also work with SharePoint 2007 if you "manually" create the SPWeb object.

The basic steps to add a new link to Quick Launch:

  1. Get the SPWeb object for your site.
  2. Get the SPWeb.Navigation.QuickLaunch object.
  3. Create a new node .
  4. Add the new node to an existing node (like "Lists" or "Libraries") or the root of Quick Launch.
  5. Done… No need to call Update() on anything!

Note: This will work with publishing sites as long as you are not using Managed Metadata Navigation.

 

Get your web object and the QuickLaunch object:

$web = Get-SPWeb http://yourServer/sites/yourSite
$quicklaunch = $web.Navigation.QuickLaunch

You can explore your existing Quick Launch from here. Just type $quicklaunch and press enter to see your headings / top level nodes. Type $quicklaunch | where {$_.title -eq "Lists"} to see the links in one of the headings. You could even list all of the headings and their children with this one: $quicklaunch | select -ExpandProperty Children | Select {$_.Parent.Title}, {$_.Title}.

 

Create a new node object:

Each item added to Quick Launch is an SPNavigationNode object. It has three parameters: the text to display, the URL to the linked resource and $true if the link is external to SharePoint or $false if the link is internal to SharePoint. It appears that the $true/$false in the third parameter is used to see if the URL is validated as a real SharePoint URL or not. I could still add SharePoint links by leaving it as $true.

Example for a SharePoint link: (note the $false)

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("Get help!", "/sites/helpsite", $false)

Example for Bing or link external to SharePoint:

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("Bing", http://www.bing.com, $true)

Example for JavaScript:

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("Say Hello!", "javascript:alert('hello')", $true)

Example for JavaScript to open a new dialog box:
(Note the "`" in front of the "$" is needed because "$" means something special in PowerShell. (a variable follows))

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("Add a new task", "JavaScript:var options=SP.UI.`$create_DialogOptions();options.url='/sites/Publishing/Lists/Tasks/NewForm.aspx?RootFolder=&IsDlg=1';options.height = 400;void(SP.UI.ModalDialog.showModalDialog(options))", $true)

For more on JavaScript in Quick Launch see SharePoint: JavaScript in Quick Launch and Top Link Bar! and SharePoint: Opening a 2010 Dialog Box from Quick Launch.

 

Add the node to Quick Launch

To add the new node as a "heading" just add it to the Quick Launch object:

$quicklaunch.AddAsFirst($navnode)             or .AddAsLast

To add the new node as a child of a "heading" then use Where to find that heading:

$heading = $quicklaunch | where {$_.title -eq "Lists"}
$heading.Children.AddAsLast($navnode)

To add the new node after an existing node (i.e. not as First or Last) you will need to retrieve the existing node and then use the .Add method.

$existingLink = $heading.Children | where {$_.title -eq "Search the web with Bing"}

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("Search the web with Google", "http://www.google.com", $true)

$heading.Children.Add($navnode,$existingLink)

 

Delete a link?

Sure… Just retrieve the node and then call Delete.

$heading | Select -ExpandProperty Children | where { $_.Title -eq "Tasks" } | ForEach { $_.Delete() }

If you know that there's exactly one node that matches the Where test then you can shorten it to this:

($heading | Select -ExpandProperty Children | where { $_.Title -eq "Goog
le" }).Delete()

 

Bulk updates?

Sure… with extreme caution!  Danger! Will Robinson! Danger! Do the following at your own risk. No liability assumed, batteries not included!

Here's an example to add a Help link to every site in a site collection or to all site collections in the entire farm. (You way want to filter out the My Sites and the publishing sites!)

First confirm what you are about to change!

Get-SPSite http://sharepoint/sites/training | Get-SPWeb -Limit All | Select URL, Title
  
or
Get-SPSite -Limit All | Get-SPWeb -Limit All | Select URL, Title

Create the new link / node.

$navnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode("HELP!", "http://yourServer/sites/yourHelpSite", $true)

Now add it to every site in a site collection!

Get-SPSite http://sharepoint/sites/training | Get-SPWeb -Limit All | ForEach { $_.Navigation.QuickLaunch.AddAsFirst($navnode) }

or for all site collections in the farm:

Get-SPSite -Limit All | Get-SPWeb -Limit All | ForEach { $_.Navigation.QuickLaunch.AddAsFirst($navnode) }

 

And if you want to delete all of those helpful links?

Get-SPSite http://sharepoint/sites/training | Get-SPWeb -Limit All | ForEach { ($_.Navigation.QuickLaunch | where {$_.Title -eq "Help!"}).Delete()  }

 

What about a Publishing Site?

Publishing Sites use the "Navigation" editor for links and it does not permit "URLs" that don't begin with "http". This means that you cannot add JavaScript to a Quick Launch link using that editor. For SharePoint 2010 you can use the workaround here, or for 2010 and 2013 you can use the PowerShell above. (PowerShell to the rescue!) For more on JavaScript in Quick Launch see SharePoint: JavaScript in Quick Launch and Top Link Bar! and SharePoint: Opening a 2010 Dialog Box from Quick Launch.

The PowerShell above will work as long as in your Navigation settings you have not selected "Managed Navigation" or "same as parent".

image

 

References:

MSDN's article showing C# examples: (This is for 2010 but applies to 2007-2013.)

https://msdn.microsoft.com/en-us/library/office/ms427791(v=office.14).aspx

2/19/2015

Looking for __REQUESTDIGEST?

 

When the minimal Download feature is enabled, you cannot find the __REQUESTDIGEST by using Internet Explorer's View Source feature.

But there are two quick options:

  • You can find it using this JavaScript in the address bar:
    javascript:alert(document.getElementById("__REQUESTDIGEST").value)
  • Use the F12 Developer Tools. Click the DOM explorer then use the search box to search for __REQUESTDIGEST.

 

The Minimal Download feature?

What does the Minimal Download feature have to do with it? When enabled, this feature optimizes page downloads by only downloading what has changed since the last page load. Thing like Quick Launch, Top Link bar, Search, and the master page content in general, do not change when a user clicks links to lists and libraries. Cool feature? Some think not… If you are creating 2013 apps then you might want to take a look at this article: http://www.threewill.com/working-with-and-around-sharepoint-2013s-minimal-download-strategy/ and this one http://blogs.technet.com/b/jay/archive/2013/10/22/sp2013-new-feature-minimal-download-feature.aspx 

While I can't see huge differences with this feature enabled, I do find a lot of ugly URLs and issues with apps and with publishing sites. When doing development I do like to work with a URL like this:

https://yourServer/sites/yourSite/Shared%20Documents/Forms/AllItems.aspx

and not like this:

https://yourServer/sites/yourSite/_layouts/15/start.aspx#/Shared%20Documents/Forms/AllItems.aspx

 

image

 

.

2/15/2015

SharePoint Search Tip: Search for "title" where there is no "title"!

 

Title:somekeywords

image

You find the strangest things in SharePoint when you are looking for something else! I'm writing the labs for a new SharePoint 2013 Search Administration class and was looking for a list that did not support a search on "title:sometext". The list I first tested that did not have a "Title" column actually did work with a search for "title:". Huh? So I next tried the Links List as this one has always been a problem with the Content Query Web Part due to not having a "Title" column. I found that I could search Links with "title:sometext"! How?

 

Everything has a Title?

Almost…

Most SharePoint lists and libraries have a "Title" column. As "Title" is also an out of the box search Managed Property you can search these lists and libraries by using "title:airplane". If you browse around your sites though you will only find a few lists and libraries that have a "Title" column. For example: document libraries and announcements lists.

Out of the box lists and libraries that support a search on Title:

  • Some libraries and lists have an obvious Title column, so they are searchable on "Title". While libraries have a Title column, it is often not populated by users. Search will index the "Title" as the title field, when not blank, and otherwise index the "Name" column as "Title", so we can still search using "title:keyword".
  • Asset libraries have a "Title" column listed in the Library Properties page, but it's not listed on the Edit Properties page of videos, but we can still search using "title:keyword".
  • Custom lists where you have renamed the default title. Even after being renamed, it's still "Title" internally.
  • Lists with no displayed title column:
    • A Contacts list's "Last Name" column is internally named "Title". I.e. a search for title:smith works but a search for title:"mike smith" does not as "Mike" is not in the "Title/Last Name" column.
    • A Task list's "Task Name" column is internally named "Title".
    • A Discussion list's "Subject" column is internally named "Title".
    • A Categories list's "Category" column is internally named "Title".
    • A Content and Structure Reports list's "Report Title" column is internally named "Title".
    • A Links list has a hidden Title column that is auto-populated with the text from the "description" of the link.
    • A list created by importing an Excel file makes the first text column the clickable link column for the list. While the displayed name is whatever was imported, the internal name is "Title".

What does not have a Title?

  • Site Pages libraries.
  • Wiki libraries.
  • Visio Repository Site Process Diagrams libraries.
  • An external list (External Content Type) may not have a "Title" column.

 

Bottom line?

Almost every list is searchable using "title:somekeywords".

 

 

About the Links List

A Links list is special… or a least different. While many lists have a visible column with a name other than "Title" and an internal name of "Title", the List list is a bit different. A links list does not seem to have a end user accessible Title column, which is why its always been a pain with the Content Query Web Part. But… it does have a "Title" column, it's just hidden and Read Only. If you do a search using "title:", you will find links!  I guess its auto-populated and included just for searching. Here's the XML from the feature for the Links list:

image

 

.

2/10/2015

SharePoint 2013 List and Library Registration IDs, Feature IDs and ContentClass codes

 

Back in 2008 I created a list of SharePoint list and library registration IDs here. I updated it again in 2009, 2010 and 2014, and every time finding more list types to document. Well, I'm back again with yet another and larger list. The last update brought the list count up to 72 list types. This one ups the count to 107. While I was at it, I added the Feature that defines the list type, if the list type is typically searchable and the ContentClass codes that are used by search to find lists of that type. I will of course return to update this list again, and again, and again…

Column Notes:

  • Enum Name is from the Microsoft.SharePoint.SPListTemplateType enumeration. See the original article for C# and PowerShell examples of how to dump this list.
  • ID = the Registration ID, or list template ID. These are typically found in the Feature elements file that defines the list template. Example:
      <Elements …> <ListTemplate Name="announce" Type="104" …
  • Idx = Indexed by SharePoint search. If this is "No" or "Hidden" then you cannot use the contentclass code to search for these list types.
  • ContentClasses are used for searching for lists. A ContentClass search to find all Announcements lists might look like this:
       contentclass=STS_List_Announcements.
  • For each STS_List ContentClass there is a matching STS_ListItem to find all of the items in that type of list. For example, to find all announcements in SharePoint:
       contentclass=STS_ListItem_Announcements 
    or to find all of the announcements about the picnic:
       picnic contentclass=STS_List_Announcements
  • Refer to the original article for more details.

 

I will post an article in a few weeks that explores ContentClass and how it is used with search.

 

SharePoint 2013 List and Library Registration IDs, Feature IDs and ContentClass codes

 

Common Name

Enum Name

ID

Idx

ContentClass

Feature Name

Feature ID

 

InvalidType

-1

       
 

NoListTemplate

0

       

Custom List

GenericList

100

Y

STS_List

CustomList

00bfea71-de22-43b2-a848-c05709900100

Document Library

DocumentLibrary

101

Y

STS_List_DocumentLibrary

DocumentLibrary

00bfea71-e717-4e80-aa17-d0c71b360101

Survey List

Survey

102

Y

STS_List_Survey

SurveysList

00bfea71-eb8a-40b1-80c7-506be7590102

Links List

Links

103

Y

STS_List_Links

LinksList

00bfea71-2062-426c-90bf-714c59600103

Announcements List

Announcements

104

Y

STS_List_Announcements

AnnouncementsList

00bfea71-d1ce-42de-9c63-a44004ce0104

Contacts List

Contacts

105

Y

STS_List_Contacts

ContactsList

00bfea71-7e6d-4186-9ba8-c047ac750105

Events List

Events

106

Y

STS_List_Events

EventsList

00bfea71-ec85-4903-972d-ebe475780106

Tasks List

Tasks

107

Y

STS_List_Tasks

TasksList

00bfea71-a83e-497e-9ba0-7a5c597d0107

Discussion List

DiscussionBoard

108

Y

STS_List_DiscussionBoard

DiscussionsList

00bfea71-6a49-43fa-b535-d15c05500108

Picture Library

PictureLibrary

109

Y

STS_List_PictureLibrary

PictureLibrary

00bfea71-52d4-45b3-b544-b1c71b620109

 

DataSources

110

N?

 

DataSourceLibrary

00bfea71-f381-423d-b9d1-da7a54c50110

 

WebTemplateCatalog

111

N?

 

na

 
 

UserInformation

112

H

 

na

 

Web Part Gallery

WebPartCatalog

113

H

 

na

 

List Template Gallery

ListTemplateCatalog

114

H

 

na

 

Form Library (typically InfoPath forms)

XMLForm

115

Y

STS_List_XMLForm

XmlFormLibrary

00bfea71-1e1d-4562-b56a-f05371bb0115

Master Page Gallery

MasterPageCatalog

116

H

 

na

 

wfpub

NoCodeWorkflows

117

H

 

NoCodeWorkflowLibrary

00bfea71-f600-43f6-a895-40c0de7b0117

 

WorkflowProcess

118

N?

 

workflowProcessList

00bfea71-2d77-4a75-9fca-76516689e21a

Web Page Library

WebPageLibrary

119

Y

STS_List_WebPageLibrary

WebPageLibrary

00bfea71-c796-4402-9f2f-0eb9a6e71b18

 

CustomGrid

120

   

GridList

00bfea71-3a1d-41d3-a0ee-651d11570120

Solution Gallery

SolutionCatalog

121

H

     
 

NoCodePublic

122

N?

 

NoCodeWorkflowLibrary

00bfea71-f600-43f6-a895-40c0de7b0117

 

ThemeCatalog

123

H

     

Composed Looks

DesignCatalog

124

H

     

appdata

AppDataCatalog

125

H

     
 

DataConnectionLibrary

130

Y

STS_List_DataConnectionLibrary

DataConnectionLibrary

00bfea71-dbd7-4f72-b8cb-da7ac0440130

Preservation Hold Library

 

131

Y

STS_List_131

   
 

WorkflowHistory

140

H

 

WorkflowHistoryList

00bfea71-4ea5-48d4-a4ad-305cf7030140

Project Tasks List

GanttTasks

150

Y

STS_List_GanttTasks

GanttTasksList

00bfea71-513d-4ca0-96c2-6a47775c0119

 

HelpLibrary

151

   

HelpLibrary

071de60d-4b02-4076-b001-b456e93146fe

 

AccessRequest

160

   

AccessRequests

A0F12EE4-9B60-4ba4-81F6-75724F4CA973

Promoted Links

 

170

 

STS_List_170

PromotedLinksList

192EFA95-E50C-475e-87AB-361CEDE5DD7F

Tasks (2013 version)

TasksWithTimelineA ndHierarchy

171

Y

STS_List_TasksWith
TimelineAndHierarchy

HierarchyTasksList

f9ce21f8-f437-4f7e-8bc6-946378c850f0

 

MaintenanceLogs

175

   

MaintenanceLogs

8c6f9096-388d-4eed-96ff-698b3ec46fc4

Meeting Series

Meetings

200

H

 

na

 
 

Agenda

201

Y

STS_List_Agenda

na

 

Attendees

MeetingUser

202

Y

STS_List_MeetingUser

na

 

Decisions

Decision

204

Y

STS_List_Decision

na

 

Objectives

MeetingObjective

207

Y

STS_List_MeetingObjective

na

 

Text Box / Directions

TextBox

210

Y

STS_List_TextBox

na

 

Things To Bring

ThingsToBring

211

Y

STS_List_ThingsToBring

na

 
 

HomePageLibrary

212

   

na

 
 

Sites

300

   

SitesList

a311bf68-c990-4da3-89b3-88989a3d7721

Blog Posts/ Tabs List

Posts

301

Y

STS_List_Posts

BlogContent

0D1C50F7-0309-431c-ADFB-B777D5473A65

Blog Comments

Comments

302

Y

STS_List_Comments

BlogContent

0D1C50F7-0309-431c-ADFB-B777D5473A65

Blog Categories

Categories

303

Y

STS_List_Categories

BlogContent

0D1C50F7-0309-431c-ADFB-B777D5473A65

App Catalog

 

330

Y

STS_List_330

CorporateCatalog

0AC11793-9C2F-4CAC-8F22-33F93FAC18F2

Apps for Office

 

332

Y

STS_List_332

OfficeExtensionCatalog

61E874CD-3AC3-4531-8628-28C3ACB78279

App Requests

 

333

Y

STS_List_333

AppRequestsList

334DFC83-8655-48A1-B79D-68B7F6C63222

Restricted Permission List

 

397

   

AccSrvRestrictedList

A4D4EE2C-A6CB-4191-AB0A-21BB5BDE92FB

USysApplicationLog - Access

 

398

Y

STS_List_398

AccSrvUSysAppLog

28101B19-B896-44f4-9264-DB028F307A62

MSysASO - Access

 

399

Y

STS_List_399

AccSrvMSysAso

29EA7495-FCA1-4dc6-8AC1-500C247A036E

   

400

   

ScheduleList

636287a7-7f62-4a6e-9fcc-081f4672cbf8

Manage Resources

 

401

   

FCGroupsList

08386d3d-7cc0-486b-a730-3b4cfe1b5509

Resources - Group Work Site

Facility

402

Y

STS_List_Facility

FacilityList

58160a6b-4396-4d6e-867c-65381fb5fbc9

Whereabouts - Group Work Site

Whereabouts

403

Y

STS_List_Whereabouts

WhereaboutsList

9c2ef9dc-f733-432e-be1c-2e79957ea27b

Phone Call Memo - Group Work Site

CallTrack

404

Y

STS_List_CallTrack

CallTrackList

239650e3-ee0b-44a0-a22a-48292402b8d8

Circulations - Group Work Site

Circulation

405

Y

STS_List_Circulation

CirculationList

a568770a-50ba-4052-ab48-37d8029b3f47

Timecard (hidden) - publishing

Timecard

420

H

STS_List_TimeCard

TimeCardList

d5191a77-fa2d-4801-9baf-9f4205c9e9d2

 

Holidays

421

?

 

HolidaysList

9ad4c2d4-443b-4a94-8534-49a23f20ba3c

  .

425

?

 

WhatsNewList

d7670c9c-1c29-4f44-8691-584001968a74

StatusIndicatorList / KPIs

 

432

 

STS_List_432

BizAppsListTemplates

065c78be-5231-477e-a972-14177cc5b3c7

Report Library

 

433

 

STS_List_433

ReportListTemplate

2510D73F-7109-4ccc-8A1C-314894DEEB3A

   

434

       

Dashboard content

 

450

 

STS_List_450

PPSWorkspaceList

481333E1-A246-4d89-AFAB-D18C6FE344CE

Data Sources - Performance Point

 

460

 

STS_List_460

PPSDatasourceLib

5D220570-DF17-405e-B42D-994237D60EBF

   

470

 

1

BICenterDataconnectionsLib

26676156-91A0-49F7-87AA-37B1D5F0C4D0

Dashboards

 

480

 

STS_List_480

BICenterDashboardsLib

F979E4DC-1852-4F26-AB92-D1B2A190AFC9

Microsoft IME Dictionary List

IMEDic

499

N?

 

IMEDicList

1c6a572c-1b58-49ab-b5db-75caf50692e6

Categories - community site

 

500

Y

STS_List_500

CategoriesList

D32700C7-9EC5-45e6-9C89-EA703EFCA1DF

   

505

   

VisioProcessRepository

7E0AABEE-B92B-4368-8742-21AB16453D01

Visio Repository Site Process Diagrams

 

506

Y

STS_List_506

VisioProcessRepositoryUs

7E0AABEE-B92B-4368-8742-21AB16453D02

   

530

   

ContentFollowingList

A34E5458-8D20-4C0D-B137-E1390F5824A1

MicroBlogList (MicroFeed)

 

544

Y

STS_List_544

MySiteMicroBlog

EA23650B-0340-4708-B465-441A41C37AF7

SocialDataStoreList

 

550

   

SocialDataStore

FA8379C9-791A-4FB0-812E-D0CFCAC809C8

 

ExternalList

600

Y

 

ExternalList

00bfea71-9549-43f8-b978-e47e54a10600

My Site Documents

MySiteDocumentLibrary

700

 

STS_List_MySiteDocumentLibrary

MySiteDocumentLibrary

E9C0FF81-D821-4771-8B4C-246AA7E5E9EB

Product Catalog

 

751

 

STS_List_751

   

Pages Library

Pages

850

Y

STS_List_850

Publishing

22A9EF51-737B-4ff2-9346-694633FE4416

Asset Library

 

851

Y

STS_List_851

AssetLibrary

4BCCCD62-DCAF-46dc-A7D4-E38277EF33F4

Channel Settings

 

852

Y

STS_List_852

   

Hub Settings

 

853

Y

STS_List_853

   

Members - community site

 

880

Y

STS_List_880

MembershipList

947AFD14-0EA1-46c6-BE97-DEA1BF6F5BAE

for community site

 

925

   

AbuseReportsList

C6A92DBF-6441-4b8b-882F-8D97CB12C83A

Issue Tracking List

IssueTracking

1100

Y

STS_List_IssueTracking

IssuesList

00bfea71-5932-4f9c-ad71-1557e5751100

 

AdminTasks

1200

       
 

HealthRules

1220

       
 

HealthReports

1221

       

DraftAppsListTemplate

DeveloperSiteDraftApps

1230

Y

STS_LIST_DeveloperSite
DraftApps

Developer

E374875E-06B6-11E0-B0FA-57F5DFD72085

TransMgmtLib

Translation Management Library

1300

   

TransMgmtLib

29D85C25-170C-4df9-A641-12DB0B9D4130

xlatelist

Languages & Translations

1301

   

TransMgmtLib

29D85C25-170C-4df9-A641-12DB0B9D4130

   

1302

   

InPlaceRecords

DA2E115B-07E4-49d9-BB2C-35E93BB9FCA9

EDiscoverySources

 

1305

Y

STS_List_1305

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

EDiscovery Source Instances

 

1306

H

 

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

EDiscovery Source Groups / Sets

 

1307

Y

STS_List_1307

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

EDiscovery Custodians

 

1308

Y

STS_List_1308

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

Custom Lists / Queries

 

1309

Y

STS_List_1309

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

EDiscovery Exports

 

1310

Y

STS_List_1310

EDiscoveryCaseResources

E8C02A2A-9010-4F98-AF88-6668D59F91A7

   

2000

   

PhonePNSubscriber

41E1D4BF-B1A2-47F7-AB80-D5D6CBBA3092

   

2001

   

ExternalSubscription

5B10D113-2D0D-43BD-A2FD-F8BC879F5ABD

Slide Library

 

2100

Y

STS_List_2100

SlideLibrary

0BE49FE9-9BC9-409d-ABF9-702753BD878

AccSrvAddApp / Access App

 

3100

   

AccSvcAddAccessApp

D2B9EC23-526B-42C5-87B6-852BD83E0364

wfsvc

 

4501

   

WorkflowServiceStore

2C63DF2B-CEAB-42c6-AEFF-B3968162D4B1

Acquisition History List

 

10099

 

STS_List_10099

   

Please don't just copy and paste this into another blog! The person who said "plagiarism is the sincerest form of flattery" did not do all of the work!. Feel free to reference this Tech Training Notes article as a source of this information.

.Additional Notes:

  • Not all lists are available in all sites. The available lists depend on the template and enabled features.
  • Not all of the lists can be created in SharePoint 2013, at least without using code or PowerShell. Many of these lists are “deprecated” and are only still supported for upgrades from older SharePoint versions.

 

.

SharePoint Search and Dates

 

I created a file on 2/7/2015. I searched SharePoint using "Write=2/7/2015" and could not find the file! When I found it by keywords, search said it was created on 2/7/2015.

    image

The library said it was created on 2/7/2015.

    image

When I searched using "Write=2/8/2015" I found it!

Turns out that search works in a different time zone! Here's the quote from this MSDN article:

"All date/time values must be specified according to the UTC (Coordinated Universal Time), also known as GMT (Greenwich Mean Time) time zone."

My testing is in Eastern Standard Time (EST), so GMT is currently 5 hours "in the future". When using GMT my file was created at 2/8/2015 12:50 AM.

 

Now try to explain that to all of your SharePoint users!

Smile

 

By the way… what time zone are you, or your users using? In my Office 365 subscription it's defaulting to PST when I create new site collections. I guess I should go check all of my other site collections and see I remembered to change to them all to EST when I created them!

image

 

.

Note to spammers!

Spammers, don't waste your time... all posts are moderated. If your comment includes unrelated links, is advertising, or just pure spam, it will never be seen.