none
フルテキスト検索 RRS feed

  • 質問

  • ご教授お願いいたします。

    SQLserver2008R2にて

    品目テーブルとその他テーブルを連結させて
    品目マスタ一覧表のストアドを
    作成しました。
    しかし、このストアドの抽出条件に
    like関数の部分一致を2回使用しております。
    その結果、結果までに約10秒(レコード件数60000件)
    となりました。
    さらに速く処理したいため参考書やネット等で
    調べたらlike関数はではなくフルテキスト検索を
    使用した方がいいとあったため
    そちらへ変更しようと編集をしたのですが
    エラーで成功しませんでした。
    つきましては、作成方法をご教授頂ければ
    幸いと存じます。
    尚、品目マスタはカラムとして
    ID(int)、コード(varchar(40))、品名(varchar(60))・・・と
    なっており
    キーは ID(PK_品目マスタ)となっています。

    like関数の時は、品目マスタのコードと品名を部分一致していました。

    そして、以下のようにフルテキストのクエリを作成しました。

    USE データベース名
    CREATE FULLTEXT CATALOG hinmoku_catalog
      ON FILEGROUP SECONDARY

    --フルテキストインデックスの作成
    CREATE FULLTEXT INDEX
      ON 品目マスタ(コード)
      KEY INDEX PK_品目マスタ
        ON hinmoku_catalog;
    GO

    --ここまでは、作成されました。

    --検索方法
    SELECT * FROM 品目マスタ
    WHERE CONTAINS(コード, @test) ※検索文字列はパラメータを指定しております。

    --この抽出クエリを実行すると、以下のメッセージとなります。
    テーブルまたはインデックス付きビュー 'MA_品目' にはフルテキスト インデックスが
    設定されていないので、CONTAINS 述語または FREETEXT 述語を使用できません。

    構成ツールではフルテキストは開始されています。

    全くどうすれいいかわかりません。
    ご回答お願いいたします。

    以上

    2011年12月27日 8:13

回答

  • フルテキストインデックスは詳しくないのですが質問させて下さい。

     'MA_品目' というオブジェクトに心当たりはありませんか?

    • 回答としてマーク zeak01 2012年1月12日 0:08
    2012年1月5日 8:51