我试图在SQL Server中执行特定术语全文搜索。看起来这样做的方法是将关键字用双引号括起来,这是我在我的应用中做的:
Query = "\"" + model.SearchString + "\""
但是,当我使用诸如" foo bar"之类的术语对数据库执行查询时,它会返回" foo"和" bar"在数据库内。预期的结果是数据库应该只返回具有" foo bar"特别。这是查询:
SELECT o.OpinionDocumentId
FROM CONTAINSTABLE(OpinionDocuments, Html, @query) AS KEY_TBL
LEFT JOIN dbo.OpinionDocuments AS o ON o.OpinionDocumentId = KEY_TBL.[KEY]
WHERE o.Date BETWEEN @from AND @to
这个查询没有从特定关键字集返回结果的原因是什么?
由于
答案 0 :(得分:0)
我是通过Dba.stackexchange发现的:https://dba.stackexchange.com/questions/89821/sql-server-specific-term-full-text-search-is-not-working
使用NEAR将解决问题:
CONTAINSTABLE(OpinionDocuments, HTML, 'NEAR((Foo, bar), 0, TRUE)') AS KEY_TBL
在哪里' Foo'和' Bar'是关键字,0是它们之间的距离,TRUE指定订单是重要的