SQL Server FullText搜索包含标点符号的短语,例如IP地址?

时间:2012-07-02 13:32:51

标签: sql-server sql-server-2008 full-text-search

我使用SQL Server全文搜索可能包含IP地址的大型varchar / varbinary列中的文本。我知道地址中的点不在索引中,但我认为像这样的短语搜索会起作用:

从myFTETable中选择*包含(myFTEcolumn," 192 168 100 101")

它没有。我究竟做错了什么?有没有办法搜索IP地址,或者更常见的是,当原始数据中的短语包含标点时,是否有办法进行短语搜索?

感谢。

1 个答案:

答案 0 :(得分:3)

你说得对,LIKE operator doesn't take advantage of the fulltext index导致数据库增长时查询运行时间过长。

您是否尝试过查询内部索引表以查看索引的数字是多少?这可以通过运行 -

来完成
SELECT * FROM sys.dm_fts_index_keywords(db_id('{database}'), object_id('{table}'))

在全文索引表中插入192.168.100.101会在内部显示为8个不同的条目(4个数字,4个字符)并运行CONTAINS('“192 168 100 101”')会显示相关的行。< / p>

作为一个警告,全文将删除一些较低的数字作为其停止列表机制的一部分。这可以通过在创建索引期间指定STOPLIST OFF或从内部停止列表中删除匹配的字符串来覆盖。