2013-12-19 59 views
3

我有这样的:在全文搜索中可以将NEAR和FORMSOF结合在一起吗?

SELECT * FROM AwesomePeople WHERE CONTAINS(Name, 'NEAR(("Nathan", "Fillion"), MAX, TRUE)')

但我想它结合,从而它使用我的话的词库来看看在NathanFillion替代品。

我可以这样做:

SELECT * FROM AwesomePeople WHERE CONTAINS(Name, 'FORMSOF (THESAURUS, "Nathan"))

但我不知道如何寻找2个字,或使其在一个单一的查询做FORMSOF和NEAR在一起。我尝试过几种组合,但运气不好。

任何想法?

回答

2

看起来你使用SQL Server 2012为“NEAR(( “内森”, “菲利安”)是邻近搜索的新形式,被称为自定义邻近搜索

从的TechNet: http://technet.microsoft.com/en-us/library/ms142568%28v=sql.110%29.aspx

你不能用一个通用接近 项(字词1 NEAR词条2),一代项(ISABOUT ...),或加权 项(FORMSOF ...)结合了定制接近的术语。

也低了下去

不能合并使用自定义接近通用接近长期 项,如NEAR((字词1,词条2),5),加权期限(ISABOUT ...),或 世代术语(FORMSOF ...)。

的Technet似乎有ISABOUT和FORMSOF在第一次报价混合起来,但无论哪种方式ISABOUT或FORMSOF方面无法与短期相结合。

1

以下将很好的工作。它更强大。

SELECT * FROM AwesomePeople AS C INNER JOIN 
CONTAINSTABLE(AwesomePeople ,name, 'ISABOUT (
    FORMSOF(Thesaurus, "Nathan"), 
    FORMSOF(Thesaurus, "Fillion"))') AS K 
ON C.ID = K.[KEY]; 
相关问题