【问题标题】:Ignoring Apostrophes In Contains忽略包含中的撇号
【发布时间】:2011-03-20 00:49:18
【问题描述】:

简单的问题,也许是一个困难的答案。我们使用的是 CONTAINS,但是当匹配包含撇号的条件时(因为这些是法国道路名称),显然它们不匹配。因此,例如,当数据库包含“L'islet”时搜索“Lislet”不会产生任何结果。

我曾研究过使用字典和同义词词典(SQL 功能),但不幸的是两者都做不到。叙词表看起来很有前途,但在我们的环境中进行测试后,很明显它们不支持撇号,这是一个很大的耻辱,因为它本来可以完美地工作。

我们唯一想做的另一件事是创建一个完全索引的视图,去掉撇号。

还有什么好主意吗?

【问题讨论】:

  • 您是否已经尝试过进行字符串替换并使用 QUOTED_IDENTIFIER OFF?
  • 我的句子“我们唯一想做的另一件事是创建一个完全索引的视图,去掉撇号”已经表明了这一点。您不应该从基础表中去掉撇号,因为这不是实际数据的准确表示。

标签: sql-server sql-server-2008 contains


【解决方案1】:

您检查过数据库的全文目录吗?有一个口音敏感度选项。您可以选择敏感或不敏感。我认为您希望将其设置为不敏感,以便忽略撇号。

【讨论】:

  • 我们之前直接在 SQL 中做过,您可以将其设置为 LATIN_GENERAL_CI_AI,但这是不同的。重音不敏感适用于带有重音符号的字母,撇号 != 重音符号。
猜你喜欢
  • 2013-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
相关资源
最近更新 更多