Как выполнять обход больших двоичных объектов в SharePoint

Узнайте, как можно модифицировать файл модели BCS для соединителя индексации BCS базы данных, чтобы включить программу-обходчик для Поиск в SharePoint для обхода больших двоичных объектов (BLOB), хранимых в базе данных SQL Server.

Обход данных объектов BLOB

Для поддержки Служба подключения к бизнес-данным (BDC) чтения типов данных больших двоичных ОБЪЕКТОВ, который можно использовать для потоковой передачи данных больших двоичных ОБЪЕКТОВ из внешних систем. Для этого необходимо проверить таблицы базы данных, содержащий внешних данных — это установки для этого. Метод StreamAccessor затем добавьте в файл модели BDC для соединителя индексации BCS внешнего контента источника.

Настройка таблицы базы данных SQL Server для данных больших двоичных ОБЪЕКТОВ

Таблица базы данных Microsoft SQL Server должна содержать столбец, определяющий расширение или тип MIME для данных объектов BLOB. Если в схеме таблицы базы данных столбец, содержащий эти данные, отсутствует, необходимо добавить его в схему. В следующих таблицах представлен образец схемы таблицы базы данных, содержащие такой столбец, и образцы соответствующих значений, хранящиеся в таблице базы данных.

Таблица 1. Образец схемы таблицы базы данных

Имя столбца Тип данных
Id Int
DisplayName nvarchar(50)
Расширение nvarchar(50)
Данные varbinary(MAX)
Контент nvarchar(MAX)

Таблица 2. Образцы значений таблицы базы данных

Id Отображаемое имя Расширение Данные Тип контента
1 File1 .docx 0x504B… application/vnd.openxmlformats-officedocument.wordprocessingml.document
2 File2 .doc 0xD... приложение/msword
3 File3 .txt OxE... text/plain

Изменение файла модели BDC для включения обхода данных больших двоичных ОБЪЕКТОВ

После проверки того, что в таблице базы данных содержит расширение или сведения о типе MIME для данных больших двоичных ОБЪЕКТОВ, Microsoft SharePoint Designer можно использовать для создания внешнего типа контента, основанный на таблицу, содержащую данные больших двоичных ОБЪЕКТОВ. Затем можно создать все операции. Для получения дополнительных сведений см Создание внешних типов контента и Инструкции. Создание внешнего типа контента на основе таблицы SQL Server.

После создания внешнего типа контента объектов BLOB, все готово для изменения файла модели BDC для включения функции обхода контента. Не удается внести эти изменения в SharePoint Designer. Поэтому необходимо экспортировать файл модели BDC и использовать редактор XML, чтобы выполнить эти изменения вручную.

Экспорт файла модели подключения к бизнес-данным для внешнего типа контента объектов BLOB

  1. В SharePoint Designer щелкните Внешние типы контента в левой панели навигации для отображения внешних типов контента, определенных в том, что хранилища метаданных BDC веб-узла этого приложения-службы.
  2. В списке Внешние типы контента выберите внешний тип контента объектов BLOB. После этого нажмите Экспорт модели подключения к бизнес-данным на Лента сервера.
  3. Введите имя в текстовом поле Имя модели подключения к бизнес-данным и нажмите OK.
  4. Выберите путь для сохранения файла модели BDC (BDCM) и нажмите Сохранить.

Включение обхода для внешнего типа контента объектов BLOB

  1. В редакторе XML откройте файл модели BDC, создание которого описано в предыдущем разделе.

  2. Создайте новый метод, возвращающий поле объектов BLOB. Необходимо определить экземпляр метода типа StreamAccessor для этого метода, как показано в следующем примере.

    Примечание

    [!Примечание] В этом примере используется имя таблицы «Attachment».

    <Method Name="GetData">
      <Properties>
        <Property Name="RdbCommandText" Type="System.String">SELECT Data FROM [dbo].[Attachment] WHERE [Id] = @Id </Property>
        <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral,
          PublicKeyToken=b77a5c561934e089">Text</Property>
      </Properties>
      <Parameters>
        <Parameter Direction="In" Name="@Id">
          <TypeDescriptor TypeName="System.Int32" IdentifierName="Id" Name="Id" />
        </Parameter>
        <Parameter Name="StreamData" Direction="Return">
          <TypeDescriptor TypeName="System.Data.IDataReader, System.Data,
            Version=2.0.3600.0, Culture=neutral,
            PublicKeyToken=b77a5c561934e089"
            IsCollection="true" Name="DataReaderTypeDescriptorName">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data,
                Version=2.0.3600.0,
                Culture=neutral,
                PublicKeyToken=b77a5c561934e089"
                Name="DataRecordTypeDescriptorName">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.Data.SqlTypes.SqlBytes, System.Data,
                    Version=2.0.3600.0,
                    Culture=neutral,
                    PublicKeyToken=b77a5c561934e089" Name="Data" />
                </TypeDescriptors>
              </TypeDescriptor>
            </TypeDescriptors>
          </TypeDescriptor>
         </Parameter>
        </Parameters>
      <MethodInstances>
        <MethodInstance Name="DataAccessor"
          Type="StreamAccessor"
          ReturnParameterName="StreamData"
          ReturnTypeDescriptorName="Data">
          <Properties>
    <!-- If extension field is available-->
            <Property Name="Extension" Type="System.String">Extension</Property>
    <!--If MimeType is available-->
            <Property Name="ContentType" Type="System.String">ContentType</Property>
    <!--If attachments is to be displayed in profile pages, add the following property-->
            <Property Name="MimeTypeField" Type="System.String">ContentType</Property>
          </Properties>
        </MethodInstance>
      </MethodInstances>
    </Method>
    

    Если для всех объектов BLOB используется тип MIME, можно заменить эту строку кода из предыдущего примера :

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

    следующей строкой кода:

    <Property Name=" ContentType " Type="System.String">application/vnd.openxmlformats-officedocument.wordprocessingml.document</Property>

  3. Повторно импортируйте файл модели с помощью Business Connectivity Services администрирования приложения-службы пользовательского интерфейса.

  4. Создание источника контента для внешнего типа контента.

  5. Запустите полный обход источника контента.

См. также