2013-12-19 98 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]; 
相關問題