SQL 服务器特定术语全文搜索不工作
SQL Server Specific term full text search is not working
我正在尝试在 SQL 服务器中执行特定术语的全文搜索。看起来这样做的方法是将关键字用双引号引起来,我在我的应用程序中就是这样做的:
Query = "\"" + model.SearchString + "\""
但是,当我使用 "foo bar" 等术语对数据库执行查询时,它 return 数据库中每次出现 "foo" 和 "bar" .预期的结果是数据库应该 return 只有具有 "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
此查询未 return 特定关键字集的结果的原因可能是什么?
谢谢
我通过 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表示顺序重要
我正在尝试在 SQL 服务器中执行特定术语的全文搜索。看起来这样做的方法是将关键字用双引号引起来,我在我的应用程序中就是这样做的:
Query = "\"" + model.SearchString + "\""
但是,当我使用 "foo bar" 等术语对数据库执行查询时,它 return 数据库中每次出现 "foo" 和 "bar" .预期的结果是数据库应该 return 只有具有 "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
此查询未 return 特定关键字集的结果的原因可能是什么?
谢谢
我通过 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表示顺序重要