Sql server 从SQL Server全文搜索中排除撇号

Sql server 从SQL Server全文搜索中排除撇号,sql-server,full-text-search,Sql Server,Full Text Search,我想知道如何在全文搜索中排除撇号索引 例如,如果有人输入“o'brien”或“obrien”的搜索词,我希望它匹配所有人的名字与“o'brien”或“obrien”匹配的情况 但是,如果我搜索: select * from MyTable where contains (fullName, '"o''Brien*"') 它只返回带撇号的数字。 但如果我这样做: select * from MyTable where contains (fullName, '"oBrien*"') 它只返回那

我想知道如何在全文搜索中排除撇号索引

例如,如果有人输入“o'brien”或“obrien”的搜索词,我希望它匹配所有人的名字与“o'brien”或“obrien”匹配的情况

但是,如果我搜索:

select * from MyTable where contains (fullName, '"o''Brien*"')
它只返回带撇号的数字。 但如果我这样做:

select * from MyTable where contains (fullName, '"oBrien*"')
它只返回那些没有撇号的

简言之,我想知道FTS是否有可能将“O'Brien”和“OBrien”都索引为“OBrien”,这样我就可以同时找到这两个

而解决方案:

select * from MyTable where contains (fullName, '"oBrien*" OR "o''Brien*"')
但是,如果用户输入“obrien”,我就无法做出这样的假设


我正在寻找一种既适用于SQL Server 2005又适用于2008的解决方案。

根据您的空间大小,您可以添加另一列

全名\u不定时


仅包含名称的字母字符,从搜索条件中删除标点符号,然后搜索无标点符号列。

SQL Server版本?(FTS在2005年到2008年之间变化很大)可能的重复是SQL 2005特有的。你说的“可能的重复是2005特有的”是什么意思?@Avrom-我在回复Jacob的“可能的重复”链接。这可能对我有用。我得调查一下。不过,如果有办法让它只把“O'Brien”和“OBrien”索引为“OBrien”,那就更好了。添加了一个新的列,其中“全名”去掉了撇号,并在其上创建了FTS索引。它能够使用contains(完全搜索,“obrien*”)找到O'Brien和obrien。