- - PR -
SQLServer2000のフルテキストインデックス
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 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のフルテキストインデックスの問題かなと考えてこちら に投稿させていただきました。) |
|
投稿日時: 2005-02-15 18:22
自己レスです。
"WHERE CONTAINS(<列名>, '"*あああ*" OR "*いいい*"')" というように、部分一致であることを明示すると、意図した結 果が得られるようです。 こうするのが普通なのかどうか良くわかりませんが、SQL文に 渡す前に、サーバ側でテキスト処理を通すようにしようと 思います。 |
1
