2012年4月14日土曜日

字幕検索 その1

EPGデータから番組名と番組情報の検索は出来るようにして使っていましたが、少し物足りなくなってきたので、字幕データも突っ込んで全文検索できるようにしてみました。
# MySQLで全文検索を試してみたかったんです。

CentOS 6を利用しているので、MySQLは下記のバージョンを使用しています。

% rpm -q "mysql-*"
mysql-5.1.61-1.el6_2.1.x86_64

MySQLで日本語の全文検索をするために、MySQL full-text parser plugin collectionmecab pluginを使ってみることにしました。
上記のソフトを付属のINSTALLファイルを参照して、インストールします。
ロケールにUTF8を使用しているので、mecab-0.993, mecab-ipadic-2.7.0-20070801のconfigureのオプションに --with-charset=utf8 を指定する必要がありました。(デフォルトはEUC)

取りあえず、こんな感じでテーブルを作ると、
create table da_caption (
        dp_id integer primary key NOT NULL AUTO_INCREMENT,
        dc_ch integer,
        dp_start_time timestamp,
        dp_pid integer,
        dv_id integer,
        dp_text text
        ) engine = myisam DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

create index da_caption_index on da_caption (dp_start_time, dc_ch);
create fulltext index da_caption_fulltext_index on da_caption (dp_text) with parser mecab;
次のような検索できるようになります。
mysql> select * from da_caption where match(dp_text) against('バイク -自転車' in boolean mode) limit 5;
+---------+-------+---------------------+--------+--------+--------------------------------------------------------------------------------------------+
| dp_id   | dc_ch | dp_start_time       | dp_pid | dv_id  | dp_text                                                                                    |
+---------+-------+---------------------+--------+--------+--------------------------------------------------------------------------------------------+
| 2337207 |    27 | 2012-03-31 16:19:30 |   1415 | 190710 | 同じ排気量のバイクに乗るため→                                                              |
| 2337241 |    27 | 2012-03-31 16:22:40 |   1415 | 190710 | でも ほとんど バイクのパーツ代に消えてしまうんだそうです。                               |
| 2399738 |    23 | 2012-04-01 19:54:08 |   4231 | 194390 | 知人らしきバイクの女性が颯爽と登場。                                                       |
| 2380118 |    21 | 2012-04-01 13:01:38 |    340 | 193580 | <ベトナムは バイク大国>                                                                 |
| 2380122 |    21 | 2012-04-01 13:02:03 |    340 | 193580 | <バイクの多い…>                                                                         |
+---------+-------+---------------------+--------+--------+--------------------------------------------------------------------------------------------+
5 rows in set (0.00 sec)

0 件のコメント:

コメントを投稿