none
2文字目に&のある3文字キーワードでのフルテキスト検索 RRS feed

  • 質問

  • こんにちは

     

    現在SQL Server2000の全文検索について取り組んでおりますが、どうしても2文字目に&のある3文字からなるキーワードで検索が出来なくて困っております。

     

    例:

    CONTAINSTABLE(テーブル, *,  'M&A')

    CONTAINSTABLE(テーブル, *,  'R&D')

    CONTAINSTABLE(テーブル, *,  'L&P')

    CONTAINSTABLE(テーブル, *,  'S&P')

     

    このようにすると

    「フルテキスト操作を実行できませんでした。クエリの句には無視される単語しかありませんでした。 」

    と表示されて検索することが出来ません。

     

    M&Aなどのノイズワードの登録はないので、おそらくM,&,Aとそれぞれ一文字ずつに分解され、ノイズワードにかかっているようなのですが、どうにも行き詰まっております。

     

    どなたかおわかりになる方、ご教示していただければ本当に助かります。お願いいたします。

     

    junmai

    2009年1月20日 2:35

回答

  • こんにちは、naginoです。

     

    このケースにおいては、フルテキスト検索にこだわらずに「LIKE」とワイルドカード「%」による部分一致を使用する方がお勧めです。

    一応、アルファベット一文字をノイズ語ファイルから除外して「NEAR」で検索するといった方法もありますが、速度と精度が低下する弊害が大きいので、お勧めできません。

     

    なお、推測ベースのお話ですが、SQL Server 2008 ですとサードパーティ製のワードブレーカを使用できるので、「&」を単語区切りに使用しないように設定できるかもしれませんが、SQL Server 2000 では無理だったと記憶しています。

     

    ご参考になれば幸いです。

    • 回答としてマーク sk7474 2009年2月2日 7:36
    2009年1月22日 0:31

すべての返信

  • 試していませんが、

    Code Snippet
    [&]

     

     

    としてみたらどうなりますでしょうか?

     

    2009年1月20日 4:28
  • trapemiyaさん

     

    ありがとうございます。

    早速試してみましたところ、以下のような結果となりました。

     

    Code Snippet

    CONTAINSTABLE(テーブル, *,  'P[&]G')

     

     

    としてみたところ、構文エラーになりましたので''の内側に""を入れてみました。

     

    Code Snippet
    CONTAINSTABLE(テーブル, *,  '"S[&]B"')

     

     

     

    結果は同じく「フルテキスト操作を実行できませんでした。クエリの句には無視される単語しかありませんでした。 」

    と表示されて検索することが出来ません。

     

    X&Xという固有名詞は結構あると思うのですが、皆さんどうやっているのでしょうか。。

    2009年1月20日 7:57
  • こんにちは、naginoです。

     

    このケースにおいては、フルテキスト検索にこだわらずに「LIKE」とワイルドカード「%」による部分一致を使用する方がお勧めです。

    一応、アルファベット一文字をノイズ語ファイルから除外して「NEAR」で検索するといった方法もありますが、速度と精度が低下する弊害が大きいので、お勧めできません。

     

    なお、推測ベースのお話ですが、SQL Server 2008 ですとサードパーティ製のワードブレーカを使用できるので、「&」を単語区切りに使用しないように設定できるかもしれませんが、SQL Server 2000 では無理だったと記憶しています。

     

    ご参考になれば幸いです。

    • 回答としてマーク sk7474 2009年2月2日 7:36
    2009年1月22日 0:31
  • naginoさま

     

    返信ありがとうございます。

     

    フルテキスト検索の方がパフォーマンス、検索結果ともに良いのであきらめきれなかったのですが、

    R&D,M&Aなどのキーワードが入力されたときはフルテキスト検索からLIKE検索に切り替える方法でしのぎたいと思います。

    ご指摘いただいたノイズワードからアルファベット1文字を抜いてNEARという方法も確かに弊害が大きそうですが、そんな方法もあるのかと参考になりました。

     

    今後SQL Server2008に移行する予定もありますので、サードパーティー製のワードブレーカーなども

    調べていきたいと思います。

     

    どうもありがとうございました。

     

    2009年1月22日 7:22
  • こんにちは。中川 俊輔です。

    trapemiyaさん、naginoさん、回答ありがとうございます。

    junmaiさん、はじめまして。フォーラムのご利用ありがとうございます。
    有用な情報と思われたため、naginoさんの回答へ回答済みチェックをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!


    マイクロソフト株式会社 フォーラム オペレータ 中川 俊輔
    2009年2月2日 7:40