在 SQL Server 全文搜索中使用哪些安全字符?

gue*_*est 0 sql-server full-text-search

我一直在玩 SQL Server 2012 上的全文搜索。我必须说我尝试在搜索查询中定位特殊字符是徒劳的 - SS 不理解它们。更重要的是,有时特殊字符的存在会完全中断查询,SS 会报告错误。我一直无法理解何时以及如何以及哪些角色是好的以及他们何时破坏事物。我还没有找到任何方法来定位搜索中的特殊字符,而不是用其他一些字符转义/替换它们。我还偶然发现了这篇文章http://searchsqlserver.techtarget.com/tip/Using-full-text-search-for-symbols-in-SQL-Server这意味着一些特殊字符的工作方式就像它们在正则表达式中一样。我无法在实践中证实这个假设 - 文章中建议的转义不起作用,这些字符也不能用作正则表达式命令。

任何人都可以向我指出如何处理 FTS 和特殊字符的简明 [工作] 解释吗?我在网上没有找到任何有用的东西。我也通读了关于 SO 的问题,它们同样没有帮助。

Pau*_*ite 9

如果没有很好地描述您要实现的目标和原因,很难具体回答这个问题,但是根据您搜索保留字符的需要,全文搜索似乎不适合您用于全文引擎中的特殊用途,被分词器视为分隔符,或在默认系统停止列表中作为停用出现。

全文搜索功能主要旨在使用特定语言(例如英语、德语或法语)的规则对单词和短语执行语言搜索。搜索像$partitionin这样的编程关键字T-SQL可能不会像您希望的那样工作,因为$partition它不是可用 50 种(口语)语言中的任何一种的单词或短语。如果有T-SQL语言选项,情况会有所不同。

可能可以使用自定义的“新词”词典来满足您的要求,但这不是我自己直接试验过的。我认为这是我在不了解您的需求的情况下所能提供的尽可能有用的答案。