2017-09-27 20 views
0

我有一个Azure SQL数据库,并尝试过全文搜索。 可以搜索完整的句子吗?带有完整句子的SQL Server全文搜索

E.g.查询与LIKE操作符的作品(但可能不会快,全文搜索):

SELECT Sentence 
FROM Sentences 
WHERE 'This is a whole sentence for example.' LIKE '%'+Sentence+'%' 

将返回:“整个句子”

我需要这样的东西,与全文检索:

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'This is a whole sentence for example.') 

这将返回一个单词的每个命中,但不是完整的句子。 例如会返回:“一整句”和“另一句话”。

这是可能的还是我必须使用LIKE运算符?

回答

1

你有没有尝试过这样的:

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'"This is a whole sentence for example."') 

如果以上不工作,你可能需要使用AND运营商构建适当的FTS搜索字符串,象下面这样:

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'"This" AND "is" AND "a" AND "whole" 
        AND "sentence" AND "for" AND "example."') 

而且,更精确的匹配我推荐使用CONTAINSCONTAINSTABLE

SELECT Sentence 
FROM Sentences 
WHERE CONTAINS(WorkingExperience,'"This is a whole sentence for example."') 

HTH

+0

感谢您的帮助! FREETEXT版本的工作方式就像没有“..”。CONTAINS版本只会返回包含完全“这是一个完整的句子”的条目。而不是与LIKE运算符一起使用“整个句子” –

+0

@tschännie的条目是否符合您的要求?如果只需要“完整句子”的确切结果,则将CONTAINS版本中的条件缩短为“CONTAINS(WorkingExperience)”,“整个句子”或“CONTAINS(WorkingExperience”,“与”整个“和”句子“')'。 – andrews

+0

不,它不符合我的要求。 我无法缩短病情。我必须搜索的句子取决于用户的输入。 –