0

CMSの少数のテーブルでMSSQLのフルテキストインデックスを使用していますが、残念ながらSQL Server 2000でスタックしています。フリーテキストテーブル結合を使用してインデックスをクエリしているため、かなり良い結果が得られていますが、いくつかの固有の用語があります。ステミングしていないように見える検索クエリ。たとえば、「smartbar」という用語を使用したクエリは2行を返しますが、「smartbars」を使用したクエリは、部分的に重複している別の結果セットを返します。

ステミングの概念を正しく理解していれば、最初のクエリには2番目のクエリのすべての行が含まれていると思いますが、含まれていません。

MSDNのBooksOnlineを見ると、このページではfreetext_stringパラメーターのコメントでステミングについて言及していますが、このページでは言及していません。そのことから、 SQLServer2000はフリーテキストテーブルクエリの単語をステム処理しないと思います。これは正しい仮定ですか?SQL Server 2000の停止を促進または有効化する方法はありますか?フォールバックとして、私はおそらく独自の用語の重要なクエリにシソーラスファイルを使用しますが、SQLServerにほとんどの作業を任せたいと思います。

フォローアップとして、SQL Server 2000のフルテキストクエリに関する優れたリソースへのリンクをお持ちの方がいらっしゃいましたら、よろしくお願いいたします。MSDNの情報は役に立ちますが、もっと詳細な情報が欲しいので、あまり見つけることができませんでした。

4

1 に答える 1

1

求めるものは少し違うと思います。単語のすべての形式を検索します。ステミングと関係がありますが、MS SQL Server 全文検索では結果が少し異なります。単語自体だけでなく、単語のすべての形式を検索するようにサーバーに明示的に指示する必要があります。

これを行う方法は次のとおりです。

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')

このテーマに関する MSDNの記事があります。他のリソースによると、この機能は SQL 2k でも利用可能でした (ただし、検証するインスタンスが手元にありません)。

于 2009-08-05T15:20:12.290 に答える