SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

進化したSQL Server 2012の新機能紹介

検索効率を向上させる新たな機能
――類似データ抽出、空間、関数

進化したSQL Server 2012の新機能紹介(6)

  • X ポスト
  • このエントリーをはてなブックマークに追加

セマンティック検索を列で有効化する手順

 セマンティック検索を利用する準備が完了したので、実際にセマンティック検索をテーブルの列に対して有効化します。

1. セマンティック検索を試行するためのサンプルデータを用意する

 リスト4のスクリプトを実行し、データベース「test」とテーブル「取引マスター」を作成し、サンプルデータを挿入します。

リスト4 セマンティック検索のサンプル用データベースとテーブルの作成
CREATE DATABASE test
GO
USE test
CREATE TABLE [取引先マスター](
    [取引先コード] [nvarchar](10) NOT NULL,
    [取引先名] [nvarchar](60) NULL,
    [取引先英名] [nvarchar](60) NULL)
GO
CREATE UNIQUE CLUSTERED INDEX [PK_取引先マスター] ON [dbo].[取引先マスター]
(
    [取引先コード] ASC
)ON [PRIMARY]
GO
INSERT [dbo].[取引先マスター] ([取引先コード], [取引先名], [取引先英名]) VALUES (N'TR0001', N'(株)CRC総合研究所', N'CRC Research Institute Inc.')
INSERT [dbo].[取引先マスター] ([取引先コード], [取引先名], [取引先英名]) VALUES (N'TR0002', N'(株)NEC総研', N'NEC Planning Research Ltd.')
...中略...
GO
SELECT * FROM 取引先マスター

2. フルテキストインデックスの作成とセマンティック検索の有効化

 セマンティック検索を有効にするために、テーブルにフルテキストインデックスを作成し、フルテキストインデックス作成時にセマンティック検索を有効にします。フルテキストインデックスを作成する方法には、SQL Server Management Studioのウィザードを使用する方法とスクリプトを実行する方法の2通りあります。

 リスト5のスクリプトを実行することで、セマンティック検索を有効にしたフルインデックスを作成できます。セマンティック検索は日本語をサポートしていないため、ワードブレーカーに英語(1033)を指定しています。

リスト5 フルテキストインデックスの作成とセマンティック検索の有効化
CREATE FULLTEXT CATALOG testFS AS DEFAULT  -- フルテキストカタログ
GO

CREATE FULLTEXT INDEX ON 取引先マスター  -- フルテキストインデックスを作成するテーブル名
    (
        取引先英名                       -- フルテキストインデックスの対象列
        Language 1033                    -- ワードブレーカーの言語指定
        Statistical_Semantics            -- セマンティック検索の有効化
    ) 
    KEY INDEX PK_取引先マスター          -- フルテキストインデックスで使用する一意のキー指定   
GO

 セマンティック検索でサポートされている言語を確認するには、リスト6のクエリを実行します。サポート言語に現時点では日本語は含まれていませんが、随時追加されていくと思われます(注1)。

注1

 MSDNライブラリのドキュメントでは記載のない中国語が、リスト6で確認できるサポート言語に含まれていることから、サポート言語が随時追加対応されていることが確認できます。

リスト6 セマンティック検索がサポートしている言語
SELECT * FROM sys.fulltext_semantic_languages
GO

 SQL Server Management Studioで有効にするには、取引マスターテーブルを右クリックし、[フルテキストインデックス]-[フルテキストインデックスの定義]を選択します(図5)。

図5 フルテキストインデックスの定義
図5 フルテキストインデックスの定義

 フルテキストインデックスで使用する一意キーを指定します(図6)。

図6 フルテキストインデックスの一意キーの指定
図6 フルテキストインデックスの一意キーの指定

 対象列と統計的セマンティックの有効化を選択します(図7)。

図7 統計的セマンティックの有効化
図7 統計的セマンティックの有効化

 統計的セマンティックを選択する場合、ワードブレーカーは英語を選択します。日本語はサポートされていないため、日本語を選択した場合、ウィザードの最後で図8のエラーが表示されます。

図8 統計的セマンティックの作成失敗エラー
図8 統計的セマンティックの作成失敗エラー

次のページ
統計的セマンティック検索により抽出されたフレーズの確認

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
進化したSQL Server 2012の新機能紹介連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 大和屋 貴仁(ヤマトヤ タカヒト)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6682 2012/08/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング