Добавление индекса / полнотекстового поиска по некоторым частичным данным для поля таблицы Sql 2008? - PullRequest
1 голос
/ 02 ноября 2009

У меня есть поле, которое содержит руководства. Они представляют GUID пользователя PunkBuster.

Можно ли создать в этом поле индекс, который будет указывать только последний 8 символов guid?

Причина, по которой я спрашиваю, состоит в том, что вы не можете выполнить полнотекстовый поиск, например => '*abcdef'. (по крайней мере, я думаю, что где-то читал ... это был Pro Полнотекстовый поиск в языке Sql 08?)

Возможные решения (которые мне не очень нравятся): -

  • Новое поле таблицы -> NVARCHAR(8). Это содержит последние 8 символов руководства. Добавьте индекс в это поле.
  • Новая таблица подана -> UNIQUE IDENTIFIER. Переверните направляющую и сохраните ее в этом поле. Затем я могу сделать FTS на guid, но отменить запрос, который был запрошен, затем поискать по нему -> 'fedcba *'

Теперь оба пути будут работать. Но я не хочу добавлять ДОПОЛНИТЕЛЬНЫЕ данные в таблицу ... особенно, если это одни и те же данные, просто "просматриваются" по-другому.

У меня такое ощущение, что большинство людей может сказать, что я должен хранить гид в обратном порядке, потому что, что произойдет, если кто-то захочет найти последние 5 символов guid ИЛИ последние 12 символов guid?

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

Ответы [ 2 ]

0 голосов
/ 02 ноября 2009

Вы всегда можете создать новый вычисляемый столбец и сделать его PERSISTED, а затем проиндексировать его.

ALTER TABLE dbo.YourTable
  ADD LastEightGUID AS RIGHT(CAST(PunkBusterID AS VARCHAR(50)), 8) PERSISTED

и затем создать индекс для этого нового поля

CREATE NONCLUSTERED INDEX IX_LastEight 
   ON dbo.YourTable(LastEightGUID)

Марк

0 голосов
/ 02 ноября 2009

Единственное, о чем я могу думать, - это создание индексированного представления с полем из 8 символов или обратным полем guid, о котором вы упомянули. Затем создайте полнотекстовый индекс в индексированном представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...