2017-09-27 15 views
0

私はAzure SQLデータベースを持っており、全文検索を試みました。 完全な文章を検索することは可能ですか?SQL Server全文検索完全な文章

など。動作します(おそらくない高速な全文検索など)LIKE演算子を持つクエリ:

SELECT Sentence 
FROM Sentences 
WHERE 'This is a whole sentence for example.' LIKE '%'+Sentence+'%' 

が返されます:「文全体を」

私は、フルテキスト検索でそのようなことが必要です。

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'This is a whole sentence for example.') 

これは単語の各ヒットを返しますが、完全なセンテンスは返しません。 など。 「全体文」と「別の文章」が返されます。

これは可能ですか、それともLIKE演算子を使用する必要がありますか?上記が動作しない場合は、下記のように、AND演算子を使用して、適切なFTSの検索文字列を構築する必要があるかもしれません

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'"This is a whole sentence for example."') 

SELECT Sentence 
FROM Sentences 
WHERE FREETEXT(WorkingExperience,'"This" AND "is" AND "a" AND "whole" 
        AND "sentence" AND "for" AND "example."') 

また、ために

答えて

1

あなたはこのを試してみましたより正確な照合を使用することをお勧めしますCONTAINSまたはCONTAINSTABLE

SELECT Sentence 
FROM Sentences 
WHERE CONTAINS(WorkingExperience,'"This is a whole sentence for example."') 

HTH

+0

ありがとうございました! FREETEXT-versionは ".."のように機能します。 CONTAINS-バージョンはちょうど "これは完全な文章です"という内容のエントリを返します。 LIKE演算子で「全体文」のエントリではない –

+0

@tschännieそれはあなたの要件を満たしているかどうか? 「全体文」のみで正確な結果が必要な場合は、「CONTAINS」バージョンの条件を「CONTAINS(WorkingExperience)」、「全文」、「CONTAINS(WorkingExperience、 「全体」および「文」)」となる。 – andrews

+0

いいえ私の要件を満たしていません。 私は条件を短縮できません。私が検索しなければならない文は、ユーザの入力に依存します。 –