【发布时间】:2009-11-02 04:07:44
【问题描述】:
我有一个包含 guid 的字段。它们代表用户的 PunkBuster GUID。
是否可以在此字段上创建一个索引,该索引仅是 guid 的 最后一个 8 个字符?
我问的原因是你不能像 => '*abcdef' 这样进行全文搜索。 (至少我相信我在某处读到过……是 Sql 08 中的 Pro Full-Text Search 吗?)
可能的解决方案(我不太喜欢,是):-
- 新表字段 ->
NVARCHAR(8)。这包含 guid 的最后 8 个字符。在该字段上添加索引。 - 新表归档 ->
UNIQUE IDENTIFIER。反转 guid,然后将其保存在此字段中。然后我可以在 guid 上执行 FTS,但反转所请求的查询,然后在其上搜索 -> 'fedcba*'
现在两种方式都可以。但我不想在表中添加额外的数据.. 特别是如果它是相同的数据,只是“查看”不同。
我感觉大多数人可能会说我应该反向存储 guid,因为如果有人想要搜索 guid 的最后 5 个字符或 guid 的最后 12 个字符会发生什么?
因此,假设我们不想做任何这些,出于本次讨论的目的,我们可以在字段中的某些部分数据上创建索引吗?
【问题讨论】:
标签: sql-server-2008 indexing full-text-search