- PR -

SQLServer2000のフルテキストインデックス

1
投稿者投稿内容
ハム
会議室デビュー日: 2004/10/28
投稿数: 5
投稿日時: 2005-02-15 16:15
こんにちは。

現在、ASP.NET(C#)+SQLServer2000SP3 で全文検索システムを
構築しようとしています。
あるテーブルの日本語の文字列が格納されているカラム(列)について、
Enterprise manager上でテキストインデックスを作成し(Word
Breaker用の言語には日本語を指定)、ASP.NETアプリの方から、
"SELECT * FROM <テーブル名> WHERE CONTAINS(<列名>, 'あああ OR いいい')"
というようなSQL文を発行し、その結果をDataGridにバインド
しています。
この全文検索の結果について、以下のような問題が生じております。

(1)日本語1文字をCONTAINSの2番目の引数に指定した場合、
  結果0件で返ってくる
(2)「後藤」という語句で検索する際、"後藤さん"はヒットする
 が、"後藤田さん"はヒットしない

(1)(2)共に、インデックスを作成する際のWord Breakerのところに
起因する問題と思われるので、この部分をチューニング?できれば
何とかなるような気がするんですが、方法がわかりません。

ご存知の方がいらっしゃいましたらご教示ください。

よろしくお願いいたします。
(Insider.NET の方にスレッドを立てたほうが良いかなとも思いました
が、SQLServerのフルテキストインデックスの問題かなと考えてこちら
に投稿させていただきました。)
ハム
会議室デビュー日: 2004/10/28
投稿数: 5
投稿日時: 2005-02-15 18:22
自己レスです。

"WHERE CONTAINS(<列名>, '"*あああ*" OR "*いいい*"')"
というように、部分一致であることを明示すると、意図した結
果が得られるようです。
こうするのが普通なのかどうか良くわかりませんが、SQL文に
渡す前に、サーバ側でテキスト処理を通すようにしようと
思います。
1

スキルアップ/キャリアアップ(JOB@IT)