tôi đã xây dựng một truy vấn T-SQL như thế này:Lo ngại về 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
...
)
GUI cho tìm kiếm này sẽ là một trang aspx với một hộp duy nhất, nơi người dùng có thể tìm kiếm.
Tôi định xây dựng cụm từ tìm kiếm bằng cách nào đó giống như ví dụ trên (@search).
Tôi có một số mối quan tâm, mặc dù:
- Là thuật ngữ tìm kiếm ví dụ trên là cách tốt nhất hoặc duy nhất để bao gồm các biến tố của tất cả các từ trong tìm kiếm?
- Tôi có nên tách các từ và xây dựng cụm từ tìm kiếm trong C# hoặc T-SQL hay không. Tôi có xu hướng nghiêng về phía C# cho các quyết định/looping/xây dựng, nhưng tôi muốn ý kiến của bạn.
- Tôi ghét xây dựng SQL động vì nguy cơ bị tiêm. Làm thế nào tôi có thể bảo vệ chống lại điều này?
- Tôi có nên sử dụng FREETEXTTABLE thay thế không? Có cách nào để làm cho FREETEXT tìm kiếm TẤT CẢ các từ thay vì BẤT K??
- Nói chung, bạn sẽ làm điều này như thế nào?