我有一个自定义的FullTextSqlQuery,用于检索一些特定的页面。查询包含多个FREETEXT谓词并给出不可用的排名,根据MSDN,这是预期的行为,查询应该只包含一个FREETEXT。
给出预期结果的基本查询是SELECT Title, ACLanguage, ACContent, ACCategory, ACKeywords, ACID FROM scope() WHERE (FREETEXT(Title,'text') OR FREETEXT(ACContent, 'text') OR FREETEXT(ACSubtitle, 'text'))
文档说这个查询可以重写为使用一个使用组别名的谓词,但是它不清楚语法。我尝试了多个语句,以:SELECT Title, ACLanguage, ACContent, ACCategory, ACKeywords, ACID FROM scope() WHERE WITH(Title, ACSubtitle, ACContent) AS #SearchColumns FREETEXT(#SearchColumns,'text')结尾,但所有的调度都以QueryMalformedException结束
如何编写此查询?
发布于 2014-05-21 19:55:09
指定以下多个列:
SELECT Title, ACLanguage, ACContent, ACCategory, ACKeywords, ACID
FROM scope()
WHERE (FREETEXT((Title,ACContent,ACSubtitle),'text'))或者,用于搜索所有全文索引列的缩写:
SELECT Title, ACLanguage, ACContent, ACCategory, ACKeywords, ACID
FROM scope()
WHERE (FREETEXT(*,'text'))(来源)
https://stackoverflow.com/questions/23778802
复制相似问题