我对目前遇到的这个问题感到非常困惑。
我以前从未见过这种情况......并且不知道为什么会这样做。
SELECT DISTINCT p.MY_ID , MY_NAME
FROM MYTABLE p
WHERE CONTAINS( (p.MY_NAME), '"nn11"' );
my_name列是全文索引和varchar(100)
nn11
- 我得到15个结果,其中包含11
,但名称中没有nn
个字符... n11
- 我得到0结果11
我得到与nn11
问题是,结果中的任何地方都没有n
个字符,所以从技术上讲,我应该在所有计数上得到0个结果,但事实上我得到的结果有些时候对我来说没有意义......
我需要重建索引吗?它有可能被腐蚀吗?
提前致谢
这是附加信息
这些是我目前得到的结果......对于nn11和11,但n11的结果为0 ...
MYID MYNAME
------- -------
18546 11
18693 11
18747 11
18781 11
18799 11
18800 11
18873 11
18958 11
18989 11
18993 11
19069 11
19122 11
19124 11-B
19186 11-A
19407 11-A
以及每次运行的结果:
nn11 - 0x006E006E00310031 1 0 1 Exact Match nn11 0 nn11
n11 - 0x006E00310031 1 0 1 Exact Match n11 0 n11
11- 0x00310031 1 0 1 Exact Match 11 0 11
0x006E006E00310031 1 0 1 Exact Match nn11 0 11
答案 0 :(得分:0)
数字实际上存储在带有nn前缀的FTI中,这解释了为什么搜索nn11会返回与11相同但不是n11的结果。似乎没有直接的解决方法,但http://social.msdn.microsoft.com/Forums/en-US/sqlsearch/thread/8592ea09-fcfb-4fec-a3a4-5e03dedcee3a/
描述了一种解决方法