[Tritonn-dev 69] Re: Tritonnエンジン実装案

Back to archive index

Tetsuro IKEDA ikdtt****@gmail*****
2008年 1月 7日 (月) 10:25:05 JST


池田です。あけましておめでとうございます。
今年もよろしくおねがいいたします。

08/01/04 に ICHII Takashi<ichii****@schwe*****> さんは書きました:
>
> いちいです。
> あけましておめでとうございます、今年もよろしくお願いします。
>
> > ちょっとご意見募集です。
>
> あまり流れを把握しないでの質問になってしまいますが、

いえいえ〜。ぜひぜひ。


> > ・senna_index_type、senna_normalize、senna_sectionalize、
> > senna_split_alpha、senna_split_digit、senna_split_symbol
> > などのシステム変数を定義。USING句の代わりに、create/alter時に
> > これらの値を見てSennaインデックスを作成する。
>
> 今まで USING で指定していたような、テーブルとかカラムごとに
> インデックスの種類を変えたい場合はどんなイメージになるのでしょうか?
> (変えられなくなっちゃうんでしょうか??)

Pluggabble Storage Engine側からMySQL本体のもつユーザインタフェース
に追加できるのは今のところシステム変数とステータス変数のみになります。

ですので、USINGで指定できた内容は全てシステム変数化して、
CREATE INDEX時の変数の値に基づいてSennaのインデックスを
作成するという方法を考えています。

例えば、こんな感じです。
senna_index_type=[ngram|mecab|delimited]
senna_normalize=[ON|OFF]
senna_initial_n_segments=#
senna_sectionalize=[ON|OFF]
senna_split_alpha=[ON|OFF]
...

これらはmy.cnfで値を上書きできる他、SETコマンドで
動的にSESSION別に値を設定できるようにする、
というようなことを考えています。

複数の異なる形式のインデックスをSQLバッチファイルで
作る場合には、上記変数に対してSETコマンドを
事前に発行して、、、という感じでしょうか。

set senna_index_type=mecab;
create fulltext index ft on t1(c1);

USINGに比べるとちょっと面倒になるのが不満です。
ただUSINGはパーサ拡張とSQLエンジン拡張なので、
ストレージエンジンに集約させると使えなくなります。。

>
> 同じテーブルでもカラムでcharsetやcollationがちがったりして、
> たとえばstop wordとかを切り替えたりできるとうれしいなー、
> なんて思っています。

おぉ stop word!!

このへんも考えて行きたいですねぇ。。


>
> --
> ICHII Takashi
> ichii****@schwe*****
>
>
> From: "Tetsuro IKEDA" <ikdtt****@gmail*****>
> Subject: [Tritonn-dev 66] Tritonnエンジン実装案
> Date: Tue, 25 Dec 2007 17:22:29 +0900
>
> > こんにちは。池田です。
> >
> > ちょっとご意見募集です。
> >
> > MySQL 5.1でのTritonnエンジンは従来のものと異なり、
> > 以下の制約の元で実装する必要があります。
> >
> > ・パーサの拡張は行えない。つまりUSING句によるsen_flags指定や
> > initial_n_segmentsの指定ができなくなる。show senna statusも廃止。
> > ・オプティマイザや実行レイヤの拡張も行えない。つまり2ind機能も廃止。
> >
> > 一方で、以下についてはTritonnエンジンでも積極的に利用できます。
> >
> > ・独自のシステム変数を追加する。senna_index_typeとか。
> >
> > またエンジンレベルでMyISAMとは別物になるので、以下の点を
> > 気にする必要がなくなります。
> >
> > ・インデックスがFULLTEXTの場合、ビルトインのFULLTEXTなのか
> > SennaのFULLTEXTなのか。
> >
> > これらを踏まえ、Tritonnエンジン実装に関しては以下のようなことを
> > 思案しています。何かツッコミ、要望等あればコメント下さい。
> >
> > ・ifdef ENABLE_SENNAは今後も使用する。あった方が便利そうなので。
> > ・インデックスがFULLTEXTの場合、無条件でSennaのインデックスが
> > 利用されるものとして動作するようにする。
> > ・これによりtruncateなどのいくつかの制限を解除。
> > ・if(senna)による判定、分岐は不要に。
> > ・SEN_DISABLE_SENNA(USING NO SENNA)を廃止。
> > ・USINGによる拡張情報の定義を廃止。
> > ・senna_index_type、senna_normalize、senna_sectionalize、
> > senna_split_alpha、senna_split_digit、senna_split_symbol
> > などのシステム変数を定義。USING句の代わりに、create/alter時に
> > これらの値を見てSennaインデックスを作成する。
> > ・show senna statusの機能をshow tritonn engineコマンドで実装。
> > ・kwicはUDFに。
> > ・バージョン表記はMySQLのメジャーバージョンに追随させる。
> >
> > _______________________________________________
> > Tritonn-dev mailing list
> > Trito****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/tritonn-dev
>
> _______________________________________________
> Tritonn-dev mailing list
> Trito****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/tritonn-dev
>




Tritonn-dev メーリングリストの案内
Back to archive index