Поделиться через


Расширение файла модели BDC для функции поиска в SharePoint

Сведения о свойствах в модели метаданных BDC, применимых к соединителям индексирования BCS, которые позволяют поиску в SharePoint сканировать внешние данные.

Свойства поиска для файлов модели BDC

Платформа соединителей в Поиск позволяет обхода внешних данных, делая ее доступной в результатах поиска через соединители индексации BCS. Соединитель индексации BCS используется программой-обходчиком для взаимодействия с внешнего источника данных. Во время обхода контента программа-обходчик вызывает соединителя индексации BCS для извлечения данных из внешней системы и передать его программы-обходчика.

Соединители индексации BCS состоят из следующих:

Файл модели BDC Файл, который предоставляет данные для подключения к внешней системе и структуру данных.

Соединитель Компонент, содержащий код, который подключается к внешней системе и анализ доступа идентификаторы URL-адреса и BCS.

Модель метаданных BDC включает несколько свойств, которые могут быть применены к Поиск, многие из которых требуются для поддержки соединителя индексации BCS обхода контента.

В следующей таблице описываются свойства модели BDC, которые могут быть применены к Поиск.

Таблица 1. Свойства поиска для файлов модели BDC

Имя Объект метаданных Описание
ShowInSearchUI
Model
Указывает, что элемент LobSystemInstance в файле модели должен отображаться в пользовательском интерфейсе поиска. Это значение для настраиваемых соединителей не учитывается.
InputUriProcessor
Lobsystem
Задает имя класса, который обрабатывает ввода URL-адреса перед передачей их в соединитель. Применяется к .NET и настраиваемые соединители индексации BCS. Для получения дополнительных сведений см Создание настраиваемого соединителя индексации.
OutputUriProcessor
Lobsystem
Задает имя класса, который обрабатывает URL-адрес выходных данных перед передачей их в поисковой системе из соединитель. Применяется к .NET и настраиваемые соединители индексации BCS. Для получения дополнительных сведений см Создание настраиваемого соединителя индексации.
SystemUtilityTypeName
Lobsystem
Указывает имя класса, реализующего класс StructuredRepositorySystemUtility. Применяется к настраиваемые соединители индексации BCS. Для получения дополнительных сведений см Создание настраиваемого соединителя индексации.
Название
Entity
Указывает заголовок внешнего типа контента, отображаемый в результатах поиска.
DefaultLocale
Entity
Указывает строку языковых стандартов. Это значение можно переопределить с помощью свойства LCIDField или CultureField.
RootFinder
Метод
Указывает метод Finder, используемый для перечисления документов, предназначенных для обхода. Например, при подключении к базе данных это может быть инструкция SELECT или список таблиц для обхода.
DirectoryLink
Метод
Указывает, что BCS должен перейти связей. Требуется для иерархической обхода контента.
DeletedCountField
Метод
Указывает количество удаленных элементов. Это свойство не учитывается, если его значение меньше или равно нулю.
WindowsSecurityDescriptorField
Метод
Указывает для элемента дескриптор безопасности Windows. Если дескриптор не указан, вызывается метод GetSecurityDescriptor. Если метод GetSecurityDescriptor не определен, всем внешним элементам назначается список управления доступом (ACL) "Все".
AuthorField
Метод
Указывает имя автора, отображаемое в результатах поиска.
DisplayUriField
Метод
Задает URL-адрес для отображения в результатах поиска. Если указан, то это свойство переопределяет предоставлено BCS URL-адрес страницы профиля. Если не указан, отображаются в результатах поиска URL-адрес начинается с bdc3: / / и не понятен обозревателя.
LastModifiedTimeStampField
Метод
Указывает отметку времени внешнего элемента, отображаемую в результатах поиска. Это значение также используется для добавочного обхода.
DescriptionField
Метод
Указывает описание, отображаемое в результатах поиска.
LCIDField
Метод
Указывает код языка (LCID) для DescriptionField. Если это значение не указано, используется средство разбиения текста на слова по умолчанию.
CultureField
Метод
Указывает культуру для DescriptionField.
Расширение
Метод
Указывает расширение файла для потока, предназначенного для обхода. Если оно не указано, по умолчанию используется расширение TXT.
MimeType
Метод
Указывает тип MIME для потока, предназначенного для обхода. Если тип не указан, по умолчанию используется расширение TXT. Если задано и поле Extension, и поле MimeType, используется значение, указанное в поле MimeType.
UseClientCachingForSearch
Метод
Указывает, будет ли программа-обходчик кэширует контента во время перечисления. Если кэширования содержимого программа-обходчик не выполняет другой приема-передачи источник содержимого, обход отдельных элементов.
EnumerateIdsOnly
FilterDescriptor
Указывает, следует ли возвращать идентификаторы только в объекте IDEnumerator.
CrawlStartTime
FilterDescriptor
Содержит время начала последнего обхода.
SynchronizationCookie
FilterDescriptor
Указывает, что внешний источник контента возвращает после обхода контента куки-файл, который повторно отправляется соединителем индексации во время следующего вызова перечисления. Внешний источник контента использует куки-файл для определения изменений, произошедших с момента последнего обхода контента. Это свойство используется с экземплярами методов ChangedIDEnumerator и DeletedIDEnumerator.
Свойство
Typedescriptor
Указывает массив struct, используемый при поиске свойств. Этот массив состоит из следующих элементов:
  • PropertyName
  • PropertyValue
  • PropertyCulture
Text
Typedescriptor
Указывает массив struct, используемый при поиске вложений. Этот массив состоит из следующих элементов:
  • TextExtension
  • TextContentType
  • TextValue

Изменения файла модели BDC для повышения производительности при обходе контента внешних данных

Если необходимо использовать для создания файла модели BDC для внешней системы, необходимо включить для поиска, можно улучшить файл модели для оптимизации производительности при обходе контента внешних систем. В этом разделе описываются способы изменения файла модели BDC и повышения производительности.

Использование ввода-вывода встроенного свойства при извлечении больших объемов данных

В общем случае, если элемент возвращает большой объем данных, вместо метода SpecificFinder для извлечения данных следует использовать один из следующих специализированных методов:

  • Метод BinarySecurityDescriptorAccessor используется при передаче списка управления доступом (ACL) вместо свойства WindowsSecurityDescriptor.

  • Метод StreamAccessor используется при передаче потоков.

В условиях отсутствия высоких задержек в сети улучшенная производительность как правило важнее, чем затраты на дополнительное обращение к внешней системе.

Оптимизация перечисления при обходе контента внешних систем

Не выполняйте перечисление более 100000 элементов за одно обращение к внешней системе. При продолжительных перечислениях могут возникать периодические прерывания связи, препятствующие завершению обхода контента. Рекомендуется, чтобы модель BDC структурировала данные в логические папки, для которых можно выполнить перечисление по отдельности, как показано в следующем примере.

В этом примере показано перечисление для таблицы базы данных с миллионом строк, но с фиксированным набором значений в столбце ColumnA. В таком сценарии можно считать столбец ColumnA внешним типом контента и написать перечислитель для этого набора значений, используя следующую инструкцию SQL.


SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA  FROM table

Затем с помощью следующей инструкции SQL определяется специальный метод поиска.

SELECT DISTINCT( ISNULL(ColumnA,'unknown')) as ColumnA  FROM table where ColumnA = @Value

Наконец, необходимо определить операцию перехода по связям, как показано ниже.

Select * from table where ColumnA=@value

Любой метод должен начинать возврат результатов в течение двух минут, иначе программа-обходчик отменит вызов. Например, сложная инструкция SQL, использующая предложение LIKE, может выполняться более двух минут и, таким образом, привести к отмене вызова обходчиком.

Увеличение скорости обхода контента с помощью свойства UseClientCachingForSearch

Свойство UseClientCachingForSearch увеличивает скорость полного обхода контента, кэшируя элементы во время перечисления. Использование этого свойства также рекомендуется при реализации добавочного обхода контента, основанного на журналах изменений, так как это увеличит скорость добавочного обхода контента.

Важно: Если в среднем размер элементов превышает 30 килобайт, не устанавливайте это свойство, так как это приведет к значительному числу промахов в кэше и отмене повышения производительности.

Безопасность в файлах моделей BDC

Если репозиторий использует проверку подлинности NTLM, рекомендуется задать для обхода контента сквозную проверку подлинности.

Страницы профиля могут требовать использования Служба Secure Store из-за проблемы многозвенного делегирования от интерфейсного веб-сервера. При возникновении этой проблемы можно оптимизировать обход и контента в то же время сохранить использование страниц профиля, создав два похожих экземпляра LobSystemInstance. Первый экземпляр должен использовать учетные данные из проверки подлинности Служба Secure Store. Этот экземпляр не должен содержать свойство ShowInSearchUI. Второй экземпляр должен использовать сквозную проверку подлинности и должен содержать свойство ShowInSearchUI. Страницы профиля используют первый экземпляр LobSystemInstance, а программа-обходчик — второй.

Примечание.

[!Примечание] Для этого необходимо задать свойство ShowInSearchUI на уровне LobSystemInstance, а не на уровне LobSystem.

См. также