|
|
1
5
在存储索引之前,会删除干扰词。因此,不可能编写一个搜索停用词的查询。如果你真的想启用这种行为,你需要编辑停用词列表。 ( http://msdn.microsoft.com/en-us/library/ms142551.aspx |
|
|
2
1
我也有同样的问题,经过彻底的搜索,我得出的结论是没有好的解决方案。 作为妥协,我正在实施暴力解决方案: 1) 打开C:\程序文件\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\noiseENU.txt并复制其中的所有文本。 2) 粘贴到应用程序中的代码文件中,用“,”替换换行符,得到这样的List初始化器:
3) 在提交搜索字符串之前,将其分解为单词,并删除干扰词中的任何单词,如下所示:
这不是一个理想的解决方案,但只要干扰词文件不变,就应该有效。多语言支持将使用按语言分类的列表词典。 |
|
|
3
1
这是一个工作函数。文件
|
|
|
4
1
您还可以在进行查询之前删除干扰词。 语言id列表: http://msdn.microsoft.com/en-us/library/ms190303.aspx Dim queryText Without Noise As String=removeNoiseWords(queryText,ConnectionString,1033) 公共函数删除NoiseWords(ByVal输入文本为字符串, ByVal cnStr作为字符串, ByVal语言ID为整数)为字符串
|
|
|
5
0
类似于我的方法。 虽然我希望使用全文索引来执行词干、速度和多词搜索等功能,但我实际上只对两个表中的几个nvarchar(100)字段进行了索引。每个表很容易保持在50000行以下。
然后,我按照我最初的帖子中的描述,对搜索字符串中的空格进行替换,使CONTAINS能够处理多个单词,并单独截断单词。 看起来工作得很好,但我会密切关注表现。 |