ho costruito una query T-SQL come questo:Le preoccupazioni per 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
...
)
La GUI per questa ricerca sarà una pagina aspx con un unico testo in cui l'utente può cercare.
Ho in programma di costruire il termine di ricerca in qualche modo come nell'esempio sopra (@search).
ho qualche preoccupazione, però:
- È il termine di ricerca esempio precedente il modo migliore oppure solo per includere le inflessioni di tutte le parole nella ricerca?
- Devo separare le parole e costruire il termine di ricerca in C# o T-SQL. Tendo ad inclinarmi verso C# per decisioni/loop/costruzione, ma voglio la tua opinione.
- Odio creare SQL in modo dinamico a causa del rischio di iniezione. Come posso evitare questo?
- Devo utilizzare FREETEXTTABLE invece? C'è un modo per far sì che FREETEXT cerchi TUTTE le parole invece di QUALSIASI?
- In generale, in quale altro modo faresti questo?