Я построил запрос T-SQL, как это:Обеспокоенность SQL Server 2008 Full Text Search
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
...
)
Графического интерфейсом для этого поиска будет ASPX страница с одним текстовым полем, в котором пользователь может осуществлять поиск.
Я планирую как-то построить поисковый запрос, чтобы он был как пример выше (@search).
У меня есть некоторые проблемы, хотя:
- Является ли термин поиска выше пример лучшего или единственным способом включить перегибы всех слов в поиске?
- Следует отделить слова и построить поисковый запрос в C# или T-SQL. Я склоняюсь к C# для принятия решений/циклов/строительства, но я хочу ваше мнение.
- Я ненавижу строить SQL динамически из-за риска инъекции. Как я могу защититься от этого?
- Вместо этого следует использовать FREETEXTTABLE? Есть ли способ заставить FREETEXT искать ВСЕ слова вместо ЛЮБОГО?
- В общем, как бы вы это сделали?