8

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

我知道我可以为分词器设置语言,并且http://msdn.microsoft.com/en-us/library/ms345188.aspx提供了有关如何安装新语言的一些想法 - 但我需要比这更直接的控制,因为所有这些语言仍然会中断我不想中断的字符。

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

4

2 回答 2

5

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

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

于 2012-10-29T06:22:12.367 回答
3

开箱即用配置 FTS 索引的能力相当有限。我不认为你可以使用语言来做到这一点。

如果您准备迎接挑战,并且能够获得一些 C++ 知识,那么您始终可以编写自定义 IFilter 实现。这不是微不足道的,但也不是太难。有关 IFilter 资源,请参见此处

于 2010-10-22T18:55:44.750 回答