2009-06-01 26 views
1

SQL Server 2005 Expressを使用して、段落に関連する上位5組のタプルを検索します。私はフルテキストインデックスとCONTAINSTABLEを使って正確なフレーズを含む行を見つけることができますが、正確な段落ではなく、段落内の単語に最も近い一致を返すにはどうしたらよいですか?段落に基づいてSQlサーバー行を検索する方法 - 具体的に段落内の単語で、正確な段落ではありません。

私が考えることができる唯一の方法は、次の行に沿ってクエリを生成するCONTAINSTABLEクエリを分割し、すべてのスペース文字に 'または'を挿入することですが、パフォーマンス(およびストップワード)が心配です。

SELECT id, FT.rank, description 
FROM SearchTable 
    INNER JOIN CONTAINSTABLE (SearchTable, *, 
      '"This" OR "is" OR "my" OR "paragraph"') AS FT 
      ON SearchTable.id = FT.[key] 
ORDER BY Rank DESC 

私はこの問題の標準的な解決方法があると思います。それは誰か分かりますか?

+0

さて、私はそれを行うには良い方法を知りませんが、彼らは道あなたがそれをやって考えているとの一つの問題は、あなたがそのようであるなど、すべて実際に頻繁に単語を含めていることで、 、私の、等 – DForck42

+0

ええ、それは私が '言葉を止めること'を意味するものです –

答えて

2

あなたがしようとしているはずのFREETEXTとFREETEXTTABLEを試しましたか?

http://msdn.microsoft.com/en-us/library/cc879300.aspx

+1

はい、これはまさにあなたが望むものです。 FREETEXT/FREETEXTTABLEは自動的に検索テキストを単語に分割し、ランキングは一致するかどうかに基づいています。正確なフレーズランクが最高、次にすべての単語など – GalacticCowboy

+0

ああ - これはFREETEXTTABLEとCONTAINSTABLEの違いです!頭叩きの瞬間:0)多くのありがとう。 –

関連する問題