好的就是这种情况..
我在表格上启用全文搜索,但它只适用于某些字段..
CREATE FULLTEXT CATALOG [defaultcatalog]
CREATE UNIQUE INDEX ui_staticid on static(id)
CREATE FULLTEXT INDEX ON static(title_gr LANGUAGE 19,title_en,description_gr LANGUAGE 19,description_en) KEY INDEX staticid ON [defaultcatalog] WITH CHANGE_TRACKING AUTO
现在为什么以下会带来结果
Select * from static where freetext(description_en, N'str')
而这不是(虽然两者都有带str的文本..)
Select * from static where freetext(description_gr, N'str')
(我也试过没有语言规范 - 在这种情况下是希腊语) (数据库的排序规则是Greek_CI_AS) 顺便说一句
Select * from static where description_gr like N'%str%'
会工作得很好..
所有字段都是nvarchar类型,_gr字段包含英文和希腊文字..(应该没关系)
非常感谢所有帮助
答案 0 :(得分:0)
只是想弄清楚发生了什么:这里有什么问题?
SELECT * FROM static WHERE FREETEXT(*, N'str')
如果您没有明确指定要搜索的任何列,它是否会为您提供预期的结果?
另一点:我认为你的陈述中有错误的语言ID。根据SQL Server联机丛书:
当指定为字符串时, language_term对应于别名 syslanguages中的列值 系统表。字符串必须是 用单引号括起来,如 在'language_term'中。 指定时 作为一个整数,language_term是 标识的实际LCID 语言。
从我在互联网上搜索到的内容来看,希腊语的LCID是1032 - 而不是19.你可以尝试使用1032而不是19吗?这有什么不同吗?
马克