我有一张表,其中有一列是nvarchar类型的列。该表可以增长到具有相当大数量的条目。可以在这个特定的列上执行搜索,以便在GUI实现的存储过程中查找所有匹配项。在那个检查字符串匹配的sp逻辑中,在该特定列上使用LIKE%entered_phrase%。 现在,由于这可能效率不高,我想对该特定列使用全文搜索。全文搜索表中的一列
CREATE UNIQUE INDEX ui_MyId ON MyTable(Id);
CREATE FULLTEXT CATALOG ft_mycatalog AS DEFAULT;
CREATE FULLTEXT INDEX ON MyTable(MyColumn)
KEY INDEX ui_MyId
WITH STOPLIST = SYSTEM;
然而,当我执行:返回
select * FROM MyTable
WHERE CONTAINS(MyColumn, 'some_term')
没有记录。我做错了什么? (同样的事情LIKE,当然,作品)
Id MyColumn
1 12345some_termwsdjf4sd
2 sdfsjdsfsdfsdfsdsome_term5dgd
3 4l00lko0dfsdfsome_term
所以应该归还所有3项。当然在这张桌子上有更多的专栏,但现在他们无关紧要。
您能澄清一下列名吗? (“MyColumn”vs“Value”) –
您按列MyColumn创建索引并按列进行搜索值Value – Backs
Ah,它是拼写错误,Value是MyColumn的名称,所以是: SELECT * FROM MyTable WHERE CONTAINS(MyColumn, 'some_term') – bojanaborkovic