I'm trying to make my SharePoint search service index files through a BCS connector.

I implemented a StreamAccessor in the BDC model and deployed the solution. A full crawl then indicates success. However, searching for terms contained in indexed Office documents (.docx, .pptx) doesn't work, even with simple, small files - search results are empty. Also, if I search on the file name it works, but corresponding search result doesn't include any snippet of the file contents.

Oddly enough, plain text (.txt) files do work. Indexed Office files from a regular Sharepoint content source (document library) also work.

Here's an excerpt from my BDC model :

        <Method Name="GetAttachmentStream">
            <Parameter Name="myId" Direction="In">
              <TypeDescriptor Name="myIdTypeDescriptor" TypeName="System.Int32" IsCollection="false" IdentifierName="MyId" /></Parameter>
            <Parameter Name="stream" Direction="Return">
              <TypeDescriptor Name="streamTypeDescriptor" TypeName="System.IO.Stream" /></Parameter>
            <MethodInstance Name="GetAttachmentStreamInstance" Type="StreamAccessor" ReturnParameterName="stream" ReturnTypeDescriptorPath="streamTypeDescriptor">
                <Property Name="MimeTypeField" Type="System.String">MimeType</Property>
                <Property Name="FileNameField" Type="System.String">FileName</Property>

The MimeType field in my items is populated with for instance : application/vnd.openxmlformats-officedocument.wordprocessingml.document for a .docx, application/vnd.openxmlformats-officedocument.presentationml.presentation for a .pptx.

Any help would be much appreciated.


I changed the MIME types to match what appears under OfficeServer\Search\Setup\Filters in the Sharepoint server's registry, namely application/vnd.ms-word.document.12 and application/vnd.ms-powerpoint.12. It still doesn't work.

Also tried :

            <Property Name="Extension" Type="System.String">Extension</Property>
            <Property Name="ContentType" Type="System.String">MimeType</Property>

            <Property Name="MIMETypeField" Type="System.String">MimeType</Property>
            <Property Name="FileNameField" Type="System.String">FileName</Property>

But I get a "dot notation refers to a node that doesn't exist" exception on the very "MimeType" field name that has been generating no crawl exception when used with MIMETypeField property until now.

I really can't get my head around this.

  • It sounds like the file type is not being sent to the right iFilter. Aug 22 '13 at 11:30
  • Sure, but why ? Aug 22 '13 at 13:57
  • I'll try an answer. Aug 23 '13 at 12:35

I would suspect your Mime types. Isn't "12" Office 2007? I saw this answer to a similar question in the forums from Scot Hillier:

  1. Define the MimeTypeField in both the Finder and SpecificFinder if you also use the UseClientCachingForSearch property.

  2. The MimeType for WORD documents is: application/vnd.openxmlformats-officedocument.wordprocessingml.document

OH, and it appears some folks are having success with Extension instead of mime type. http://social.technet.microsoft.com/Forums/sharepoint/en-US/944e6878-a7f0-4c0e-98b7-a7fb9faeef1b/bcs-connector-and-mimetypefield


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.