c# – 关于SQL Server 2008全文搜索
我已经建立了一个这样的T-SQL查询:
DECLARE @search nvarchar(1000) = 'FORMSOF(INFLECTIONAL,hills) AND FORMSOF(INFLECTIONAL,print) AND FORMSOF(INFLECTIONAL,emergency)' SELECT * FROM Tickets WHERE ID IN ( -- unioned subqueries using CONTAINSTABLE ... ) 此搜索的GUI将是一个aspx页面,其中包含用户可以搜索的单个文本框. 我打算以某种方式构建搜索词,就像上面的例子(@search). 但我有一些担忧: >示例搜索项是否在搜索中包含所有单词的最佳或唯一方法? 解决方法
我最近使用全文搜索,所以我会尝试回答你的一些问题.
?“我讨厌由于注入风险而动态构建sql,我该如何防范? 我使用像这样的消毒方法: static string SanitizeInput(string searchPhrase) { if (searchPhrase.Length > 200) searchPhrase = searchPhrase.Substring(0,200); searchPhrase = searchPhrase.Replace(";"," "); searchPhrase = searchPhrase.Replace("'"," "); searchPhrase = searchPhrase.Replace("--"," "); searchPhrase = searchPhrase.Replace("/*"," "); searchPhrase = searchPhrase.Replace("*/"," "); searchPhrase = searchPhrase.Replace("xp_"," "); return searchPhrase; } ?我应该使用FREETEXTTABLE吗?有没有办法使FREETEXT寻找所有的单词而不是任何的? 我使用FREETEXTTABLE,但我需要任何一个字.就像我已经读过的一样(我已经读了很多),你必须使用CONTAINSTABLE来搜索所有的单词或不同的组合. FREETEXTTABLE似乎是更轻的解决方案,但是当您想要更深入的自定义时,它不是选择的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |