我可以在构建mssql全文索引时定义要使用哪个断字符吗?

时间:2010-10-12 12:43:53

标签: sql-server sql-server-2008 full-text-search fulltext-index

我创建了一个全文目录,用于存储表中某些列的数据,但内容似乎已经被我不想被视为字分隔符的字符拆分。 (“/”,“ - ”,“_”等。)

我知道我可以为断字符设置语言,http://msdn.microsoft.com/en-us/library/ms345188.aspx给出了关于如何安装新语言的主题 - 但是我需要更多的直接控制,因为所有这些语言仍然会破坏字符我想不要闯入。

有没有办法定义我自己的语言来查找断字符?

2 个答案:

答案 0 :(得分:4)

全文索引在索引时仅考虑字符 _ `。忽略所有其他字符,并在出现这些字符的地方分割单词。这主要是因为全文索引被设计用于索引大型文档,并且只考虑适当的单词使其成为更精确的搜索。

我们遇到了类似的问题。为了解决这个问题,我们实际上有一个转换表,其中 @, - ,/ 等字符被替换为特殊序列,如'`at` ','`dash `','`斜杠`'等。在全文搜索时,您必须再次使用这些特殊序列替换搜索字符串中的字符并进行搜索。这应该照顾特殊字符。

答案 1 :(得分:3)

配置FTS索引的能力相当有限。我认为你不能用语言来做这件事。

如果您正在接受挑战,并且可以访问某些C ++知识,那么您始终可以编写自定义IFilter实现。这不是微不足道的,但也不是太难。 See here for IFilter resources