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


Как работает индексирование кортежей

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

Вы можете включить индексирование кортежей для атрибута, задав бит 5, соответствующий значению 32, в атрибуте searchFlags . Этот атрибут задается в объекте схемы, представляющего атрибут, который нуждается в индексе кортежа. Влияние производительности на индексирование кортежей заключается в том, что любое строковое значение, заданное для этого атрибута, будет расширено на большое количество фрагментов в индексе кортежа. Когда атрибут расширяется, он потребляет больше места на диске в файле дерева сведений о каталоге, а также обновляется медленнее.

Индексы кортежей предназначены для ускорения поиска формы *string*. Ускорение может быть значительным, так как эта форма поиска не может быть оптимизирована каким-либо другим способом, и в его неоптимизируемых формах, она заставляет сервер Active Directory ходить по каждому объекту в область поиска для выполнения запроса. Таким образом, базовый поиск будет выполнять только поиск одного объекта, который будет использовать меньше ресурсов, немедленный поиск дочерних объектов будет выполнять поиск только дочерних объектов (которые могут использовать меньше ресурсов или больше ресурсов в зависимости от размера контейнера), а поиск поддерев будет ходить по всей поддереве поддереву базового объекта, который обычно требует большого количества ресурсов и будет очень медленным из-за размера поддерев.

Индексы кортежей работают путем разрыва строки на кортежи. Например, строка Active Directory будет разбита на следующие кортежи:

  • "Active Dir"
  • "ctive Dire"
  • "tive Direc"
  • "ive Direct"
  • "ve Directo"
  • "e Director"
  • " Directory"
  • "Directory"
  • "irectory"
  • "rectory"
  • "ectory"
  • "ctory"
  • "tory"
  • "ory"

Примечание.

Каталог остановится на 32767 символах при расширении строки для индексирования кортежей.

 

Индекс кортежа будет содержать запись для каждого из этих кортежей. Таким образом, если пользователь *cto*ищет, сервер Active Directory будет искать все совпадения для "cto" в индексе и, в этом случае, найдите указатель обратно на запись, которая имела атрибут (индексированные кортежи) со значением "Directory".

Если строка поиска medial (*cto* в предыдущем примере) достаточно конкретна, поиск будет довольно эффективным, так как он значительно сокращает количество объектов, которые сервер Active Directory должен проверять для выполнения запроса.