3

私は、SQL サーバーのフル テキスト インデックスを初めて使用します。私にとっては非常にうまく機能していますが、最近誰かが「IT Manager」の完全一致検索を行ったところ、検索の「IT」部分が無視されたようです。

例えば

SELECT * FROM CONTAINSTABLE(vCandidateSearch, SearchText, '"it manager"') 

SELECT * FROM CONTAINSTABLE(vCandidateSearch, SearchText, '"manager"') 

同じ結果を返します。私は何を間違っていますか?

4

2 に答える 2

4

問題は、フルテキスト エンジンが「it」を「ノイズ」またはストップ ワードと見なし、無視することです。

SQL 2008 以降を使用している場合は、ストップリストとストップワードに関するドキュメントを参照してください: https://msdn.microsoft.com/en-us/library/ms142551(v=sql.100).aspx

これらは、さまざまな言語のさまざまな「フィラー」単語 (たとえば、「a」、「the」、「it」など) を含むリストであり、通常は全文検索では役に立たず、無視されます。

私の経験では、これらの既定のリストは、より大きなテキストの検索には適していますが、より具体的にする必要がある製品 (または実際には仕事) のタイトルなどにはあまり役に立たないことがよくあります。

特定のニーズに適したストップワードを含む (または含まない) 独自のストップリストを作成できます。

役職検索の場合、その特定の列にストップワードをまったく使用しないことが適切な場合があります。インデックスの作成時に、特定のフルテキスト インデックスに関連付けるストップリスト (ストップワードを含む) を選択できます。必要に応じて空のリストを作成し、1 つの列のみのインデックスで使用できます (ただし、これを考慮してクエリを調整する必要があります)。

まれに、SQL 2005 以下を使用している場合は、テキスト ファイルに保持される、より原始的な "ノイズ ワード" システムを使用します: https://msdn.microsoft.com/en-us/library/ ms142551(v=sql.90).aspx

于 2015-11-13T12:29:35.937 に答える