senna

「日本MySQLユーザ会(MyNA)会 2009冬」で話をしました

ひとつ前のエントリで紹介したイベントで話をしてきました。今回はTritonnやMySQL全文検索のコア技術からは一歩引いた視点で、全文検索が何に役立つのかとか、Tritonnプロジェクトの意義とかを説明させていただいています。MySQL全文検索ことはじめView more…

configure --enable-abort

senna 1.1.4で取り込まれたokuさんによるKILLパッチについてのメモ。 configure.ac # abort AC_MSG_CHECKING([whether enable abort]) AC_ARG_ENABLE(abort, [AC_HELP_STRING([--enable-abort], [enable query abortion. [default=no]])], , [enable_abort="…

Senna APIまとめ

QL APIとDB APIについて。(今後追加改変が行われる可能性もあります) QL API senna.hにてシグネチャ定義。 関数名 説明 sen_db_create データベースを作成する sen_db_open データベースを開く sen_db_close データベースを閉じる sen_ctx_open 同一プロセ…

今日から始めるSenna QL API

Senna QL API(Senna Query Language API)を使ったプログラムを書くための下調べとして、簡単なサンプルプログラムを書いてみました。以下、ソースとコメントをあわせてご覧下さい。SennaQLを文字列そのまま投げる感じが伺えると思います。 #include <stdio.h> #includ</stdio.h>…

Senna rev827で追加されたsen_lex_set_mecab_args関数

Senna開発者の方がさっそくmecab_new関数呼び出し時の引数を事前に指定するためのAPIを作ってくださいました!Senna内部でのMeCabの初期化はlib/lex.cにてSOLE_MECAB_CONFIRMマクロを通じて行われていました。以前は"-Owakati"が固定で指定されていたのです…

Senna 新API incoming

今、senna-devメーリングリストで話題の新APIですが、そしてもしかするとmecab情報を指定可能なAPIも作られるとか。。。そうなるとTritonn tarball/zip版バイナリを作る際に見つかった「prefix以外の場所にインストールした場合にmecab辞書が見つからなくな…

Senna 2.0がやってくる!

Senna 2.0についての情報が公開されました! Sennaはこれまで「組み込み」に特化した全文検索エンジンという位置付けだったと思いますが、Senna 2.0では大幅な機能拡張が行われて、ストレージ機能や独自の問い合わせ言語が実装されるなど、単体でも機能する…

sen_values構造体

Advanced APIを使用する場合、sen_index_updates関数等による更新系処理を行う際に渡すデータとして、生の文字列ではなくsen_values構造体としてが使用される。 typedef struct _sen_values sen_values; struct _sen_values { int n_values; sen_value *valu…

更新用API

sen_index_upd関数 basic APIに含まれる更新用API sen_index_upd関数。 sen_rc sen_index_upd(sen_index *index, const void *key, const char *oldvalue, unsigned int oldvalue_len, const char *newvalue, unsigned int newvalue_len); index ... 対象の…

sennachkにlibsennaを組みんでビルド

以下でいいのかな。 CFLAGS=-static CXXFLAGS=-static ./configure XXX大丈夫っぽい。バイナリサイズでかくなるけどねw senna-1.0.7/src$ ldd sennachk libc.so.6 => /lib/tls/libc.so.6 (0x001e0000) /lib/ld-linux.so.2 (0x001c7000)要するに、1個下のエン…

ライブラリファイル単体でインストールする方法は?

libsenna.soをバイナリファイルで入手した場合、これを参考にやればいいのかな? 以下はmake install実行時のログの一部。 /usr/bin/install -c .libs/libsenna.so.0.0.0 /usr/lib/libsenna.so.0.0.0 (cd /usr/lib && { ln -s -f libsenna.so.0.0.0 libsenna…

現行の制限事項について

これまでいくつかのパタンについては内部的に回避する実装を追加してきているのですが、frmファイルにアクセスするような処理はいまでもいくつかUSING句情報が落ちるものがあります。例えば以下のようにテーブルを定義しているものとします。 CREATE TABLE t…

ver1.0.2リリース

MySQL 5.0.36/5.0.37向けの新しいリリースを行いました。ダウンロードはこちらから: http://sourceforge.jp/projects/tritonn/files/安定性の向上とログ出力関連の改善が主眼です。 tritonn-1.0.2へのアップグレードを推奨いたします。■機能改良 TRUNCATE TA…

ver4.1対応の予定

Tritonn-1.0.3にてMySQL 4.1対応を行おうと思っています。しかし、、、、そこで、、、ふたたび現れたのはッ! table2myisam問題 ...orz こいつどーするかなぁぁぁ。。。

Brian Aker氏とミーティング

MySQLの開発者のトップ(Director of Archtecture)であるBrian Aker氏とミーティングをし、Tritonnのことについて話をしてきました。MySQL 5.1系でTritonnをPluggable Storage Engineベースに移行する上で利用できそうな点、移行を妨げている点などをいろい…

1.0.4リリース

Sennaのver1.0.4がリリースされました!!以下、リリースメールより引用。●変更点 一部の検索クエリにて落ちる問題の修正 (それによるインデックス破壊の可能性もあります) snippet関数におけるバッファオーバーランの修正 スコアの付いたインデックスにおけ…

TRUNCATE TABLEでmysqldが落ちるバグの修正

tritonn-1.0.1に"TRUNCATE TABLE"を実行するとmysqldが落ちるバグが見つかったので、直しました。http://sourceforge.jp/tracker/index.php?func=detail&aid=10184&group_id=2576&atid=9554tritonn-1.0.0と1.0.1の両方に影響していると思います。以前のMySQL…

ver5.0.38対応

作業中に遭遇した変更点。 secure-file-priv変数の追加。load data infile等のfile権限による操作対象となるディレクトリを限定できるようにするもの。 ha_myisam::create関数のHA_CREATE_INFO型引数の名前が、infoからha_create_infoに変更された。

1.0.1リリース

以下の2パタンに対応したパッチをリリースしました!! MySQL 5.0.36 + Senna 1.0.3 MySQL 5.0.37 + Senna 1.0.3 ダウンロードはこちらから。 http://sourceforge.jp/projects/tritonn/files/ tritonn-1.0.0との違いは以下です。 DROP INDEX時にSENファイル…

サイト書き書き〜

ほとんどコンテンツが無い状態だったので、ひたすら書きまくり。http://qwik.jp/tritonn/やっと当初想定していた内容に近付いてきた。タイプしすぎて手の甲が痛い(腱鞘炎)。

新プロジェクトのお知らせ

昨日のOSC2007 Spring/Tokyoで発表したのですが、MySQL+Sennaを実現するためのMySQL用ソースコードパッチ(MySQLバインディングパッチ)を保守/開発するプロジェクト"Tritonn"を、新たにSennaのサブプロジェクトとして開始しましたー!プロジェクトホームペ…

OSC2007 Spring/Tokyo

やっと明日(今日)のセッションのスライド作成が終わりました!! 朝5時だよー、うひー。申し込んでくれた方、楽しみにしててください :P

OSC2007Springで話します

http://www.ospn.jp/osc2007-spring/modules/eguide/event.php?eid=25日本MySQLユーザ会からのお誘いで、Open Source Conference 2007 Springにて、MySQL+Sennaの技術セッションをやらせていただくことになりました。実はこれまでMySQL+Sennaについてはバイ…

Senna 0.8.0のMySQL bindingが凄い件について

昨日からver0.8.0ベースのMySQLバインディングのパッチをいろいろ見ているのですが、はっきり言って凄いです。少し前からGREEの小泉さん(あってる?)がGREEサイトで公開していたものがSenna本家に取り入られたという流れなので、存在そのものは知っていた…

性能検証とか

条件は以下。 データ量は850MB(日本語版Wikipedia)あるいは3.4GB(日本語版Wikipedia x4) マシンはDELL PowerEdge750(Pen4 3.2GHz HT無し、RAM2GB)要するに低スペックマシン、あるいはPowerEdge1850(Xeon 3.4GHz HT有り x2個、RAM 4GB、RAID 0有り)要…

文字コード自動変換は

現在行われないようです。というか例えば"senna=utf8"、"table=utf8"、"client=ujis"という組み合わせでMATCH検索をすると、結果がヒットしない。senna.logには以下のようなメッセージが。 invalid utf8 stringこれはAGAINSTの引数で使用した文字列がutf8で…

インデックスファイルサイズ

なぜだろう。環境(ハード、OS)を変えたら、同じテーブルに対するインデックスファイルのサイズが違った〜。不思議。 後日追記: 単なる人的ミス(自分) ...orz

nfkc.cのコンパイル

やたら時間がかかると思ったら、このファイル70k行もあるんね。そら時間かかるわ〜。で、肝心のnfkcってのは・・・http://www.unicode.org/reports/tr15/#Normalization_Form_KC読んでいたら鬱になりました。orz 助けてT先輩〜。

API解説文書

Sennaは他のソフトウェアや処理系に組み込んで使用することを主眼においているためなのか、API解説ドキュメントというのが開発者の方々により記述されて公開されています。http://qwik.jp/senna/APIJ.htmlしかも日本語。なんとも有り難い話です。助かります。

on Windows

いくつかのbug+fixを乗り越えてビルド成功〜♪ 最初はVisual Studioの使い方が良く分からず手こずるwグニャラくん様いつも素早い対応ありがとうございます、とこんなところでお礼を述べてみるw