Расширение файла модели 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, используемый при поиске свойств. Этот массив состоит из следующих элементов:
|
Text |
Typedescriptor |
Указывает массив struct, используемый при поиске вложений. Этот массив состоит из следующих элементов:
|
Изменения файла модели 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.