私はAdventureWorksデータベースの全文検索で遊んでいます。 production.ProductDescriptionでは、私は "山"と "置き換え"を検索しようとしています。私は以下の説明との記録があります知っている単一のCONTAINSTABLE検索条件で屈折検索と近接検索を組み合わせることはできますか?
:これが0行を返した
SELECT
pd.Description,
ct.RANK
FROM Production.ProductDescription AS pd
INNER JOIN CONTAINSTABLE(
Production.ProductDescription,
Description,
'mountain NEAR replacements'
) AS ct ON pd.ProductDescriptionID = ct.[KEY]
ORDER BY ct.RANK DESC;
:
High-performance mountain replacement wheel.
私の最初の周りに行くが、このでした。私が 'Mountain NEAR Replacements'を 'Mountain NEAR Replacement'に変更すると、結果のデータセットで期待した記録が得られます。
私の次の試みは、以下のような何かしようとすることでした。
SELECT
pd.Description,
ct.RANK
FROM Production.ProductDescription AS pd
INNER JOIN CONTAINSTABLE(
Production.ProductDescription,
Description,
'FORMSOF(INFLECTIONAL, "replacements") NEAR "mountain"'
) AS ct ON pd.ProductDescriptionID = ct.[KEY]
ORDER BY ct.RANK DESC;
をしかし、これは私がCONTAINSTABLEための文法を見ていた
Syntax error near 'NEAR' in the full-text search condition 'FORMSOF(INFLECTIONAL, "replacements") NEAR "mountain"'.
エラーを生成し、それはあなたができることが判明します同じ検索条件の中でgeneration_term(例えばFORMSOF())と近接項(例えばNEAR)を持っています。
Iは、テーブルに次のレコードを追加:
Replacement parts for you omg gee-whiz mountain
のレコードは以下FTSクエリで(96)高をランク付けする:
SELECT
pd.Description,
ct.RANK
FROM Production.ProductDescription AS pd
INNER JOIN CONTAINSTABLE(
Production.ProductDescription,
Description,
'FORMSOF(INFLECTIONAL,"replacements") AND "mountain"'
) AS ct ON pd.ProductDescriptionID = ct.[KEY]
ORDER BY ct.RANK DESC;
これに(32)期待ランクが低いとしてクエリ:
このような例では、 rmsの山と交代して、交替や山を含むレコードが相対的に高いランクのレコードを返しますが、そこに行く方法は失われます。