在 SQL 服务器中进行全文搜索的好的变量类型是什么

What is good variable type for full text search in SQL Server

我正在 MS SQL 服务器中声明一个新的存储过程来实现全文搜索,我的查询是这样的:

Select * from table WHERE FREETEXT((col1, col2), @Search_Statement)

问题已经写在下面:

支持大多数搜索并具有最佳性能的@Search_Statement 变量的正确数据类型是什么?

(我知道,如果我将@Search_Statement设为长变量,它支持更多的搜索查询,但使用更长的@Search_Statement执行查询可能会影响性能,并且google将搜索查询限制为32单词:https://www.linkedin.com/grp/post/1176637-216124982)

我不知道我的存储过程中的@Search_Statement 使用这些数据类型中的哪一个:Nvarchar(100)、Nvarchar(500) 或 Nvarchar(MAX) 哪个是最好的选择? (性能,以及所有其他方面)

更新:我知道我应该使用 nvarchar 但 nvarchar 的适当大小是多少? nvarchar(100),(200),(500),... 甚至 nvarchar(MAX)?

根据FREETEXT Documentation

FREETEXT ( { column_name | (column_list) | * } , 'freetext_string' [ , LANGUAGE language_term ] )

freetext_string is nvarchar. An implicit conversion occurs when another character data type is used as input. In the following example, the @SearchWord variable, which is defined as varchar(30), causes an implicit conversion in the FREETEXT predicate.