SQL サーバー 2012 と SQL マネージャーを使用しています。ストップリスト内の単語は常に無視されますか?
ストップリストが空白の場合、次のようになります。
select Count(*) from freetexttable(Document,[ContentsPlainText],'i') --> 1268
select Count(*) from freetexttable(Document,[ContentsPlainText],'a') --> 186
select Count(*) from freetexttable(Document,[ContentsPlainText],'av') --> 0
ストップリストに「a」、「i」、「av」が含まれている場合、次のようになります。
select Count(*) from freetexttable(Document,[ContentsPlainText],'i') --> 0
select Count(*) from freetexttable(Document,[ContentsPlainText],'a') --> 186
select Count(*) from freetexttable(Document,[ContentsPlainText],'av') --> 0
これは与える:
SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%i%' --> 1340
SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%a%' --> 1338
SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%av%' --> 1295
最初のフリーテキスト検索ではすべてに対して「何か」が返され、2 番目のフリーテキスト検索ではすべてに対して「なし」が返されると思います。代わりに、「i」は期待どおりに動作しますが、その他は 0 または 186 で一定です。これを正しく機能させることはできません。
編集 1:「er」で同じことを試みると、ヒット数を 1100 から 1000 程度に減らすことができます。これは 3 番目のシナリオです。
EDIT 2:私はそれをいくらか動作させました。テーブルを再作成することで (それが原因だと思います)、ストップリストに含まれている場合、すべての検索でヒット数を減らします。ただし、一部の検索ワードでは、ヒット数を減らすだけですが、それでも 0 よりも多くの結果が得られます。ストップリストが機能する前に、検索が単語などを活用している可能性があります。