我对 SQL 还很陌生,我目前正在尝试为我的网站创建一个搜索功能,就像 imdb.com 上的那个。我有 3 个表,当用户进行搜索时,我需要在每个表中搜索两行 (nvarchar)。要搜索的数据最长为 20 个字母,但行数很多,希望能添加更多行。
我想要“面向未来”的网站,我正在查找全文和 FREETEXT 搜索。我以前一直在使用 LIKE,但它表示当搜索必须查看大量数据时,这对于性能来说并不是非常理想的。
所以基本上在我开始处理我网站的这个非常重要的部分之前,我想知道像你这样的专家是怎么想的。在进行大搜索时使用 LIKE 是否可以接受,或者我应该学习如何使用全文索引和 FREETEXT 搜索?
我目前的搜索方式:
SELECT table1.col1, table1.col2
FROM table.1
WHERE table1.col1 LIKE '%@search%'
UNION ALL
SELECT table.2.col1, table2.col2
...
数据库版本:Microsoft SQL Server 2012 - 11.0.5058.0 (X64) May 14 2014 18:34:29 版权所有 (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.3 (Build 9600: )
编辑:数据始终只有 1 个单词,因此全文提供的停用词将没有用处。
在您的搜索词前面有一个通配符会阻止 SQL Server 能够使用索引,因此会变得非常痛苦。除了进行全文搜索之外,您还可以做 2 件事: