From morita @ razil.jp Tue Apr 5 16:25:34 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 5 Apr 2005 16:25:34 +0900 Subject: [Senna-dev 1] =?iso-2022-jp?b?GyRCM0YbKEJNTBskQiROMExDVklVGyhC?= =?iso-2022-jp?b?GyRCJDEbKEI=?= Message-ID: <20050405072534.GA1940@fracture.net.dhis.org> Senna開発担当@ブラジルです。 現状で既にいくつかのMLがあったのですが、 senna-dev @ lists.sourceforge.jp: 開発者向け senna @ qwik.jp: ドキュメント作成者向け のように整理したいと思います。 今後ともよろしくお願いします。 -- morita From 2005 @ eto.com Tue Apr 5 16:29:31 2005 From: 2005 @ eto.com (=?ISO-2022-JP?B?GyRCOT5FTxsoQiAbJEI5QDBsTzobKEI=?=) Date: Tue, 05 Apr 2005 16:29:31 +0900 Subject: [Senna-dev 2] =?iso-2022-jp?b?UmU6IBskQjNGGyhCTUwbJEIkTjBMGyhC?= =?iso-2022-jp?b?GyRCQ1ZJVSQxGyhC?= In-Reply-To: <20050405072534.GA1940@fracture.net.dhis.org> References: <20050405072534.GA1940@fracture.net.dhis.org> Message-ID: <20050405162915.DF7F.2005@eto.com> 江渡です。 > senna-dev @ lists.sourceforge.jp: 開発者向け > senna @ qwik.jp: ドキュメント作成者向け 了解です。よろしくおねがいします。 From ko @ yappo.ne.jp Tue Apr 5 16:38:50 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Tue, 05 Apr 2005 16:38:50 +0900 (JST) Subject: [Senna-dev 3] =?iso-2022-jp?b?UmU6IBskQjNGGyhCTUwbJEIkTjBMGyhC?= =?iso-2022-jp?b?GyRCQ1ZJVSQxGyhC?= In-Reply-To: <20050405072534.GA1940@fracture.net.dhis.org> References: <20050405072534.GA1940@fracture.net.dhis.org> Message-ID: <20050405.163850.23029646.ko@yappo.ne.jp> 大沢です。 > 今後ともよろしくお願いします。 よろしくお願いします。 所で、今後のロードマップのようなものって有るんですか? --- osawa From morita @ razil.jp Tue Apr 5 17:35:54 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 5 Apr 2005 17:35:54 +0900 Subject: [Senna-dev 4] =?iso-2022-jp?b?UmU6IBskQjNGGyhCTUwbJEIkTjBMGyhC?= =?iso-2022-jp?b?GyRCQ1ZJVSQxGyhC?= In-Reply-To: <20050405.163850.23029646.ko@yappo.ne.jp> References: <20050405072534.GA1940@fracture.net.dhis.org> <20050405.163850.23029646.ko@yappo.ne.jp> Message-ID: <20050405083554.GA2638@fracture.net.dhis.org> > 所で、今後のロードマップのようなものって有るんですか? http://qwik.jp/senna/6.html の内容を上から順に実施する予定です。 技術的には「n-gramを使って高精度化を頑張る」というよりは、 「形態素解析を使って、検索漏れ防止を頑張る」という方を 基本スタンスにしたいと考えています。 従ってMeCabへの本格的な対応を急務と位置付けていました。 オリジナル版のMeCabはマルチスレッド環境では、mutexを使うか、 論理空間をスレッド数*辞書サイズ分消費する構造になっているので、 それにまず対処しました。(*) 次いで、上記のMeCabを使ってMySQLバインディングの現状化を行う予定でしたが、 大沢様のおかげでかなり工数が短縮できそうです。(ありがとうございます) (*) http://dev.razil.jp/archive/mecab-0.80.mte.patch からダウンロードできます。 -- morita From ko @ yappo.ne.jp Tue Apr 5 20:14:00 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Tue, 05 Apr 2005 20:14:00 +0900 (JST) Subject: [Senna-dev 5] =?iso-2022-jp?b?UmU6IBskQjNGGyhCTUwbJEIkTjBMGyhC?= =?iso-2022-jp?b?GyRCQ1ZJVSQxGyhC?= In-Reply-To: <20050405083554.GA2638@fracture.net.dhis.org> References: <20050405072534.GA1940@fracture.net.dhis.org> <20050405.163850.23029646.ko@yappo.ne.jp> <20050405083554.GA2638@fracture.net.dhis.org> Message-ID: <20050405.201400.70202394.ko@yappo.ne.jp> 大沢です。 > 技術的には「n-gramを使って高精度化を頑張る」というよりは、 > 「形態素解析を使って、検索漏れ防止を頑張る」という方を > 基本スタンスにしたいと考えています。 了解しました。 現状配付されているindex.cにて、sen_index_addではsen_chop*を sen_index_delではsen_ngram*系のAPIを利用している影響で インデックスからの削除処理を行なうと、インデックスが壊れて しまっていたので、全てsen_ngram*系のAPIを利用するパッチ を作ってしまっていました。。。 取り急ぎ使える用にしたかったので、結果的にMeCabを切っちゃいました。 http://tech.yappo.jp/download/senna/senna.patch.for-rev6.diff > 次いで、上記のMeCabを使ってMySQLバインディングの現状化を行う予定でしたが、 > 大沢様のおかげでかなり工数が短縮できそうです。(ありがとうございます) あのパッチをあてていても、drop databaseを行なうと ERROR 1010: Error dropping database (can't rmdir './database/', errno: 17) というエラーが出てしまい、drop出来ない不具合がありました。 sql/sql_db.ccに修正を加えて不具合に対応しました。 また、4.1系に対応させるべく4.1.10aをベースにしたパッチも作りました。 http://tech.yappo.jp/download/senna/mysql-4.1.10a.senna.diff > (*) http://dev.razil.jp/archive/mecab-0.80.mte.patch > からダウンロードできます。 おおお、ご苦労さまです。 index.cをMeCab対応に書き変えて試してみます。 --- osawa From oyama @ module.jp Tue Apr 5 22:22:40 2005 From: oyama @ module.jp (Hiroyuki OYAMA) Date: Tue, 5 Apr 2005 22:22:40 +0900 Subject: [Senna-dev 6] [patch] revision 6 on Mac OS X Message-ID: <20050405132240.GA20455%oyama@module.jp> はじめまして。module.jpの小山浩之と申します。 sennaを組み込んで何か遊べないかと思い利用させて頂いておりま す。 動作環境について「現在はLinuxのみ」ということですが、下記の patchを適用し、Mac OS X 10.3.8での動作を確認しました。 http://module.jp/dist/senna-rev6.darwin.diff 動作を確認といっても数個のファイルで * sen_index_create() * sen_index_upd() して * sen_index_sel() * sen_records_next() etc.. して*基本動作*を簡単に確認しただけなのでアレですが :-) patchの内訳は、 1. lib/set.cで sys/types.hをinclude 2. lib/set.cのmmap(2)でMMAP_ANONYMOUSの場合、file descriptorを0から-1に変更 です。2番についてですが、Linuxのmmap(2)はMMAP_ANONYMOUSを指 定した場合、第5と第6引数の値が無視されますが、Mac OS Xの場 合は第5引数(file descriptor)を明示的に-1にセットする必要が あります。 この点はSolaris等も同様だったと思います。 ___ Hiroyuki OYAMA , Hackしてる? ----> http://module.jp/book/ From morita @ razil.jp Wed Apr 6 09:38:39 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 6 Apr 2005 09:38:39 +0900 Subject: [Senna-dev 7] Re: [patch] revision 6 on Mac OS X In-Reply-To: <20050405132240.GA20455%oyama@module.jp> References: <20050405132240.GA20455%oyama@module.jp> Message-ID: <20050406003839.GA9247@fracture.net.dhis.org> 小山さま > はじめまして。module.jpの小山浩之と申します。 > sennaを組み込んで何か遊べないかと思い利用させて頂いております。 興味を持って頂きありがとうございます。 > 動作環境について「現在はLinuxのみ」ということですが、下記の > patchを適用し、Mac OS X 10.3.8での動作を確認しました。 それはすばらしい!! > http://module.jp/dist/senna-rev6.darwin.diff ぜひ次回の版で取り込ませて下さい!! > patchの内訳は、 > > 1. lib/set.cで sys/types.hをinclude > 2. lib/set.cのmmap(2)でMMAP_ANONYMOUSの場合、file descriptorを0から-1に変更 > > です。2番についてですが、Linuxのmmap(2)はMMAP_ANONYMOUSを指 > 定した場合、第5と第6引数の値が無視されますが、Mac OS Xの場 > 合は第5引数(file descriptor)を明示的に-1にセットする必要が > あります。 > この点はSolaris等も同様だったと思います。 なるほど‥勉強になります。 -- morita From morita @ razil.jp Wed Apr 6 09:51:25 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 6 Apr 2005 09:51:25 +0900 Subject: [Senna-dev 8] =?iso-2022-jp?b?UmU6IBskQjNGGyhCTUwbJEIkTjBMGyhC?= =?iso-2022-jp?b?GyRCQ1ZJVSQxGyhC?= In-Reply-To: <20050405.201400.70202394.ko@yappo.ne.jp> References: <20050405072534.GA1940@fracture.net.dhis.org> <20050405.163850.23029646.ko@yappo.ne.jp> <20050405083554.GA2638@fracture.net.dhis.org> <20050405.201400.70202394.ko@yappo.ne.jp> Message-ID: <20050406005125.GB9247@fracture.net.dhis.org> > 現状配付されているindex.cにて、sen_index_addではsen_chop*を > sen_index_delではsen_ngram*系のAPIを利用している影響で > インデックスからの削除処理を行なうと、インデックスが壊れて > しまっていたので、全てsen_ngram*系のAPIを利用するパッチ > を作ってしまっていました。。。 ご不便かけました。ngram.cとchop.cは統合して、インデックス作成時のオプション で切替えられるように作業をすすめています。 > > (*) http://dev.razil.jp/archive/mecab-0.80.mte.patch > > からダウンロードできます。 > > おおお、ご苦労さまです。 > index.cをMeCab対応に書き変えて試してみます。 現状では、sennaのmecab対応はmt-unsafeなので動作が不安定かもしれません。 mecab.mte.patch (mte: MultiThread Enhancement)を前提とするように index.cを書き直しています。 -- morita From morita @ razil.jp Thu Apr 7 15:29:42 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Thu, 7 Apr 2005 15:29:42 +0900 Subject: [Senna-dev 9] revision 7 Message-ID: <20050407062941.GA12613@fracture.net.dhis.org> revision更新しました。主な変更は以下の通りです。 - ngram.c, chop.cを統合 → lex.cとしてまとめました。 デフォルトでは mecab を用いた形態素インデックスを作ります。 sen_index_createの引数flagsに SEN_INDEX_NGRAM を指定するとngramになります。 - 旧版ではmt-safe化が不完全だったので、 より安全&高効率なmecab.mte を使うことを前提としました。 - darwin.diff を取り込みました (感謝!! → 小山さん) - mysql binding 4.0.23, 4.0.24を現状化しました (感謝 → 大沢さん) 大沢さんのパッチに以下のように若干手を入れています。 -- mecab.mteを前提とした (mecab_new3を要求) -- senna初期化関数(sen_init)の呼び出し (内部ではmecab辞書をloadしている) -- sen_index_createのinitial_n_segmentsに0を指定 (/var/senna/senna.confで指定した値が使用される) mysql4.1については私の手元でまだ動作確認できていないので、 今回のrevisonには含めていません。(index作成時にフリーズしてしまう‥) - 原因追求しています。 -- morita From ko @ yappo.ne.jp Thu Apr 7 15:38:54 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Thu, 07 Apr 2005 15:38:54 +0900 (JST) Subject: [Senna-dev 10] Re: revision 7 In-Reply-To: <20050407062941.GA12613@fracture.net.dhis.org> References: <20050407062941.GA12613@fracture.net.dhis.org> Message-ID: <20050407.153854.116369018.ko@yappo.ne.jp> 大沢です。 > revision更新しました。主な変更は以下の通りです。 お疲れ様です! > - mysql binding 4.0.23, 4.0.24を現状化しました (感謝 → 大沢さん) > 大沢さんのパッチに以下のように若干手を入れています。 今さっき、mysql bindingに不具合を発見したところでした。。。 クエリに引っかかったレコード数が、有る程度の数以上になると errorが発生してしまいます。 | mysql> select * from SITE_SEARCHKEY where match(SEARCH_TEXT) against('yappo'); | ERROR 1030: Got error 127 from table handler mysqldのerror logを眺めると | 050407 14:14:36 ft_read_next: Got error 127 when reading table ./iYappoXb/SITE_SEARCHKEY となっており、./sql/sql_select.ccにてエラーが吐きだされているようです。 あとで何とかしてみます。。。 --- osawa From morita @ razil.jp Thu Apr 7 15:57:34 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Thu, 7 Apr 2005 15:57:34 +0900 Subject: [Senna-dev 11] =?iso-2022-jp?b?cmV2aXNpb24gNyAbJEIlJCVzJTkbKEI=?= =?iso-2022-jp?b?GyRCJUghPCVrPGo9ZxsoQiAmIBskQjtITVE+ZSROQ20bKEI=?= =?iso-2022-jp?b?GyRCMFUbKEI=?= Message-ID: <20050407065734.GB12613@fracture.net.dhis.org> * インストール手順 - mecabのinstall mecab(http://chasen.org/~taku/software/mecab/#download)を取得し、 mteパッチ(http://dev.razil.jp/archive/mecab-0.80.mte.patch)を当てて、 configure, make, make installします。 - sennaのinstall rev7(svn://dev.razil.jp/senna/trunk)を取得し、 autogen.sh, make, make installします。 - MySQL binding のinstall mysql-4.0.23 あるいは mysql-4.0.24 を取得し、 sennaパッチ(senna/bindings/mysql/mysql-4.0.24.senna.diff)を当てます。 あとは普通にmake - Ruby bindng のinstall cd senna/bindings/ruby ruby extconf.rb make make install - 終わり 今回の版はこんな手順で多分インストールできると思います。 (前回の版のはいろいろお手数かけました‥orz) * MySQLバインディング使用上の注意 - MyISAMテーブルのみが対象 InnoDBは未サポートです。 - デフォルトのエンコーディングはEUC 変更する場合は、 /var/senna/senna.conf というファイルに、 DEFAULT_ENCODING 値 のように指定して下さい。(値はeuc, sjis, utf8のいずれか) - レプリケーション未対応 slave側のfulltextインデックスがうまく作成できないようです。 - optimize table実行後は明示的なインデックス再構築が必要 一旦fulltext indexをdropし、再度 createする必要があります。 - IN BOOLEAN MODE 未対応 match()関数に指定された文字列をフルフレーズ検索します。 and検索, or検索はまだ実装していません。 -- morita From ko @ yappo.ne.jp Fri Apr 8 00:15:23 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Fri, 08 Apr 2005 00:15:23 +0900 (JST) Subject: [Senna-dev 12] Re: revision 7 In-Reply-To: <20050407.153854.116369018.ko@yappo.ne.jp> References: <20050407062941.GA12613@fracture.net.dhis.org> <20050407.153854.116369018.ko@yappo.ne.jp> Message-ID: <20050408.001523.55744693.ko@yappo.ne.jp> 大沢です。 > クエリに引っかかったレコード数が、有る程度の数以上になると > errorが発生してしまいます。 なんとなく原因がつかめました。 mysqlパッチにてmyisam/ft_update.cのft_sen_index_addの中で sen_index_upd(info->s->keyinfo[keynr].senna, &pos, NULL, buf); として、index登録を行なっています。 posは数値型の変数となり、MYDのレコードのポジションになります。 このポインタが最終的にsennaのsym.cファイルの_sen_sym_addに渡され if (!size) { size = strlen((char *)key) + 1; } にて、keyのバイト数を求めてからidの割り当てを行なっているのですが posは数値型なので、正確なkeyのバイト数が求められないケースが多々あります。 試しに、sen_index_updの引数のposを、一度char型にsprintfで変換する用に (ft_nlq_search.cも変更しておく)した所、エラーが発生しなくなりました。 #実際、変更前にはsen_index_upd時に渡していない値がsen_records_nextより #返されていました。 #大概256より小さい数字で、直後にmysqlがエラーを吐きます。 正確なバイト数を求められない事を検証したソースもつけておきます。 ------ここから int main () { int i; for (i = (256 * 256) - 10;i < ((256 * 256) + 100); i++) { unsigned char *c = (unsigned char *) &i; printf("size=%d: %d,%d,%d,%d\n", strlen((char *)c), *c, *(c + 1), *(c + 2), *(c + 3)); } } ------ここまで なので、効率は下がりますsen_index_updに渡すときは文字列に 変換した方が良さそうな気がしました。 --- osawa From morita @ razil.jp Fri Apr 8 01:00:42 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Fri, 8 Apr 2005 01:00:42 +0900 Subject: [Senna-dev 13] Re: revision 7 In-Reply-To: <20050408.001523.55744693.ko@yappo.ne.jp> References: <20050407062941.GA12613@fracture.net.dhis.org> <20050407.153854.116369018.ko@yappo.ne.jp> <20050408.001523.55744693.ko@yappo.ne.jp> Message-ID: <20050407160042.GA1827@fracture.net.dhis.org> > mysqlパッチにてmyisam/ft_update.cのft_sen_index_addの中で > > sen_index_upd(info->s->keyinfo[keynr].senna, &pos, NULL, buf); > > として、index登録を行なっています。 > posは数値型の変数となり、MYDのレコードのポジションになります。 > このポインタが最終的にsennaのsym.cファイルの_sen_sym_addに渡され > > if (!size) { size = strlen((char *)key) + 1; } > > にて、keyのバイト数を求めてからidの割り当てを行なっているのですが > posは数値型なので、正確なkeyのバイト数が求められないケースが多々あります。 なるほど! 了解しました。 実はsen_index_create()関数の第2引数で文書IDのキー長を指定できるのです。 http://dev.razil.jp/project/senna/api.html より... key_sizeにキー長(バイト長)を与えます。key_sizeに0が指定された場合は 可変長(nul終端する文字列)が指定されたとみなされます。 ‥というわけで、 --- mysql-4.0.23.senna.diff.orig 2005-04-08 00:55:35.000000000 +0900 +++ mysql-4.0.23.senna.diff 2005-04-08 00:56:46.000000000 +0900 @@ -387,7 +387,7 @@ + if (!share->keyinfo[i].senna) { + /* make index files */ + sen_log("create index (%s)", buf); -+ share->keyinfo[i].senna = sen_index_create(buf, 0, SEN_INDEX_NORMALIZE, 0, sen_enc_default); ++ share->keyinfo[i].senna = sen_index_create(buf, sizeof(int), SEN_INDEX_NORMALIZE, 0, sen_enc_default); + } + } + のように直せば解消すると思います。→ 反映します。 分かりにくい仕様ですみません‥ -- morita From morita @ razil.jp Fri Apr 8 01:28:23 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Fri, 8 Apr 2005 01:28:23 +0900 Subject: [Senna-dev 14] Re: revision 7 In-Reply-To: <20050407160042.GA1827@fracture.net.dhis.org> References: <20050407062941.GA12613@fracture.net.dhis.org> <20050407.153854.116369018.ko@yappo.ne.jp> <20050408.001523.55744693.ko@yappo.ne.jp> <20050407160042.GA1827@fracture.net.dhis.org> Message-ID: <20050407162823.GA2165@fracture.net.dhis.org> > のように直せば解消すると思います。→ 反映します。 revision 8 として更新しました。 あと、mecabにバッファオーバーフローのバグを発見したので、 mecab-0.80.mte.patchにこの修正を含めておきました。 http://dev.razil.jp/archive/mecab-0.80.mte.patch から再度取得してインストールすることをお奨めします。 (たまにしか発生しませんが、mysqldをseg faultで落してしまう可能性があります) -- morita From ko @ yappo.ne.jp Fri Apr 8 13:46:22 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Fri, 08 Apr 2005 13:46:22 +0900 (JST) Subject: [Senna-dev 15] Re: revision 7 In-Reply-To: <20050407160042.GA1827@fracture.net.dhis.org> References: <20050407.153854.116369018.ko@yappo.ne.jp> <20050408.001523.55744693.ko@yappo.ne.jp> <20050407160042.GA1827@fracture.net.dhis.org> Message-ID: <20050408.134622.02284634.ko@yappo.ne.jp> 大沢です。 > 実はsen_index_create()関数の第2引数で文書IDのキー長を指定できるのです。 そう言う意味だったのですね。迂闊でしたorz > ++ share->keyinfo[i].senna = sen_index_create(buf, sizeof(int), SEN_INDEX_NORMALIZE, 0, sen_enc_default); ft_sen_index_*のposはmy_off_t型なので、念のためsizeof(my_off_t)にしておきました。 また、sennaのindexが使われているdbをdrop databaseすると、エラーが発生します。 これは、droop database処理中にdbディレクトリ中にmysqlの把握していないファイルが 存在している事が原因のため、.SENがdbディレクトリ中に存在していてもdrop databaseを 行なえるパッチも書きました。 http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.rev8.diff sizeof(my_off_t)の変更も含んでいます。 --- osawa From morita @ razil.jp Fri Apr 8 18:00:32 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Fri, 8 Apr 2005 18:00:32 +0900 Subject: [Senna-dev 16] Re: revision 7 In-Reply-To: <20050408.134622.02284634.ko@yappo.ne.jp> References: <20050407.153854.116369018.ko@yappo.ne.jp> <20050408.001523.55744693.ko@yappo.ne.jp> <20050407160042.GA1827@fracture.net.dhis.org> <20050408.134622.02284634.ko@yappo.ne.jp> Message-ID: <20050408090032.GA12881@fracture.net.dhis.org> > ft_sen_index_*のposはmy_off_t型なので、念のためsizeof(my_off_t)にしておきました。 その方がいいですね!! > また、sennaのindexが使われているdbをdrop databaseすると、エラーが発生します。 > これは、droop database処理中にdbディレクトリ中にmysqlの把握していないファイルが > 存在している事が原因のため、.SENがdbディレクトリ中に存在していてもdrop databaseを > 行なえるパッチも書きました。 ありがとうございます!! 反映しました。 -- morita From morita @ razil.jp Sat Apr 9 09:57:17 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Sat, 9 Apr 2005 09:57:17 +0900 Subject: [Senna-dev 17] =?iso-2022-jp?b?GyRCJUklLSVlJWElcyVIGyhC?= Message-ID: <20050409005717.GA6893@fracture.net.dhis.org> ドキュメントは http://qwik.jp/senna/ にまとめて置くようにしました。 技術資料(インデックスファイルサイズ等)もぼちぼち書いてますので、 よかったらご参照下さい。 -- morita From oyama @ module.jp Sun Apr 10 04:22:45 2005 From: oyama @ module.jp (Hiroyuki OYAMA) Date: Sun, 10 Apr 2005 04:22:45 +0900 Subject: [Senna-dev 18] [patch] sen_records_curr_key() Message-ID: <20050409192245.GA11659%oyama@module.jp> module.jp???絨鎡宴?с????? ????????ャ?<?潟?????senna.h??????????????????絎?茖??????????????????? const void * sen_records_curr_key(sen_records *records); ?????吾???????帥?障???????? http://module.jp/dist/senna-rev9.sen_records_curr_key.diff sen_records_next()???key???菴?????????ц????????????????????羂????????????? ??с??????????吾???????????????????<????c????????羂?????????c??????????? :-) # 絎??????吾???????????index.c???set.c???羆???????(篌若????潟?若????????茲???????) # ??????????????????羂???????????????障??????????с??API????????<???????????????????? # ???????????????????????障???????? ?????????revision 7篁ラ???????????????????? sen_init(); ???綽??????若?喝?冴??綽?荀???????????????с???????????????????違?с??????????違???????ャ?? ??潟???????贋?違????障?????sen_index_open()膈???у????????call?????????????????? ?????????絳?????????с????? __ ?????障?????荀???с?????????????с????????test/Makefile.am ??? /usr/lib/libmecab.la ?????贋・???絎???????????????????篏??????с?????? configure.ac ???AC_CHECK_LIB(mecab, mecab_new3)?????????????????? ????????????libsenna.la???dependency_libs???菴遵?????????????????????????? ??障????? # libmecab.a????????<????医????????筝???潟????????????????? 腱???? MeCab??? /usr/local/lib/libmecab.* ?????ゃ?潟?鴻????若???????? ???????????с?≪??????????若??????????<????c?????????????????????????????????????? ??????????????宴???????х?∴??????????????????????障????障???????с????? # ??≫??????????????MeCab篁?絮????libtool??∫?c?鴻?????????????ゃ????????... ___ Hiroyuki OYAMA , Hack?????????鐚? ----> http://module.jp/book/ From oyama @ module.jp Sun Apr 10 04:37:18 2005 From: oyama @ module.jp (Hiroyuki OYAMA) Date: Sun, 10 Apr 2005 04:37:18 +0900 Subject: [Senna-dev 19] Re: [patch] sen_records_curr_key() In-Reply-To: <20050409192245.GA11659%oyama@module.jp> References: <20050409192245.GA11659%oyama@module.jp> Message-ID: <20050409193718.GA15792%oyama@module.jp> module.jpの小山です。 # すんません、変なエンコードでメール送ってましたので再送し # ます(汗) ドキュメントとsenna.hにはあるけど実装されていない const void *sen_records_curr_key(sen_records *records); を実装してみました。 http://module.jp/dist/senna-rev9.sen_records_curr_key.diff sen_records_next()がkeyを返すので不要な気もするのですが、 「書いてあるのに使えない」というのが気になったもので :-) ただ書きながら思ったのですが、lib/index.cとlib/set.cでnext系 と似たようなコードが重複して存在することになってしまうので、 API的に無しにするのもアリかなとも思いました。 あと、revision 7から最初に sen_init(); を実行する必要がありますよね。この点ドキュメントの更新、ま たはsen_index_open()等で自動的にcallするなどして頂けたりす ると嬉しいです。 # 最初忘れててハマりました。 __ 重要ではないのですが test/Makefile.am で /usr/lib/libmecab.la を直接指定しているのは何故ですか? configure.acで AC_CHECK_LIB(mecab, mecab_new3)しているのでlibsenna.laに dependency_libsとして自動的に追加されるので不要なのではない かと思います。 # libmecab.a しか無い場合に困るのかしら? 私の場合 /usr/local/lib/libmecab.* にインストールしているの で、アップデート時に引っかかって気持ちが悪いというだけの下ら ない理由ですので無視して頂いてかまいませんです。 # 関係ないけどMeCab付属のlibtool関連スクリプト古いなぁ... ___ Hiroyuki OYAMA , Hackしてる? ----> http://module.jp/book/ From morita @ razil.jp Sun Apr 10 13:25:23 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Sun, 10 Apr 2005 13:25:23 +0900 Subject: [Senna-dev 20] Re: [patch] sen_records_curr_key() In-Reply-To: <20050409193718.GA15792%oyama@module.jp> References: <20050409192245.GA11659%oyama@module.jp> <20050409193718.GA15792%oyama@module.jp> Message-ID: <20050410042523.GA7797@fracture.net.dhis.org> > ドキュメントとsenna.hにはあるけど実装されていない > const void *sen_records_curr_key(sen_records *records); > を実装してみました。 うわーすみませんすみません‥。 仕様だけあって未実装の関数がいくつかあるのです。 (→ 未実装のものが分かるようにドキュメントにも反映します) APIの仕様自体、まだちょっと迷っている面があります。 (直交性があって、必要十分で、分かりやすいAPIを目指しているのですが、 なかなか難しい‥。) 現在の仕様では、類似文書検索や関連語抽出等を実装するための機能が欠けている のに、一部の機能については(小山さんが指摘するように)やや冗長なのです。 パッチ拝見しました。コーディングスタイルも揃えていて頂いて恐縮まくりです。 概ね正しく動作すると思われますが、sen_set_cursor_open()して、 最初のsen_set_cursor_next()する前に、sen_set_cursor_curr()を呼び出すと、 不正な値を返す可能性があります。 (sen_set_cursor.currは正しいエントリーを指していない可能性がある) > ただ書きながら思ったのですが、lib/index.cとlib/set.cでnext系 > と似たようなコードが重複して存在することになってしまうので、 > API的に無しにするのもアリかなとも思いました。 そうなんですよね‥。sen_recordsに関しては sen_records_curr_score() との バランスを考えて sen_records_curr_key() を設けてみたのですが、 sen_setには同様の操作はそぐわないかも知れません。 とりあえず、sen_records_curr_key() については、sen_records_next()の戻り値を _sen_records構造体に保存したものを返すようにしました。 sen_records_next()実行前にsen_records_curr_key()を実行するとNULLが返ります。 (せっかくのパッチなのに適用できずすみません) > を実行する必要がありますよね。この点ドキュメントの更新、ま > たはsen_index_open()等で自動的にcallするなどして頂けたりす > ると嬉しいです。 > # 最初忘れててハマりました。 すみません!! とりいそぎドキュメントに反映しました。 > 重要ではないのですが test/Makefile.am で /usr/lib/libmecab.la > を直接指定しているのは何故ですか? 意味ないです(^^) 取ります。 -- morita From ko @ yappo.ne.jp Sun Apr 10 15:11:14 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Sun, 10 Apr 2005 15:11:14 +0900 (JST) Subject: [Senna-dev 21] =?iso-2022-jp?b?W3BhdGNoXSBteXNxbBskQiROGyhCSU4g?= =?iso-2022-jp?b?Qk9PTEVBTiBNT0RFGyRCMj5CUDF+GyhC?= Message-ID: <20050410.151114.74722424.ko@yappo.ne.jp> 大沢です。 mysql 4.0.24にて、IN BOOLEAN MODEに対応すべくパッチを作成しました。 やった事 - myisam/ftdefs.h にて演算子以外の文字列をキーワードと見なすようにマクロの書き換え。 - /myisam/ft_boolean_search.c を書き換えてsennaを利用するようにフック。 ft_boolean_read_nextにて、演算子の条件を見つつ各レコードが、演算子に一致する レコードかを見ているのですが、検索クエリごとにsen_records_nextより戻される 値の順番がばらけている(ソートされていない)ため、正確な演算子判定が出来ないようです。 まだまだ/myisam/ft_boolean_search.cの仕様が追えていないせいもあって、確実な事は 言えないのですが、keyを昇順ソートしてくれる版のsen_records_nextがあれば うまく動きそうな気がします。 上記問題点があり、正常な動作はしませんが一応パッチを作っておきました。 http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.rev9.ftb2.diff --- osawa From ko @ yappo.ne.jp Sun Apr 10 16:43:36 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Sun, 10 Apr 2005 16:43:36 +0900 (JST) Subject: [Senna-dev 22] =?iso-2022-jp?b?UmU6IFtwYXRjaF0gbXlzcWw=?= =?iso-2022-jp?b?GyRCJE4bKEJJTiBCT09MRUFOIE1PREUbJEIyPkJQMX4bKEI=?= In-Reply-To: <20050410.151114.74722424.ko@yappo.ne.jp> References: <20050410.151114.74722424.ko@yappo.ne.jp> Message-ID: <20050410.164336.41665272.ko@yappo.ne.jp> 大沢です。 > まだまだ/myisam/ft_boolean_search.cの仕様が追えていないせいもあって、確実な事は > 言えないのですが、keyを昇順ソートしてくれる版のsen_records_nextがあれば > うまく動きそうな気がします。 とりあえず /myisam/ft_boolean_search.c 側で実装してみたところうまく動きました。 ただ、全レコードを読み込んだ後にqsortしてるだけなので、効率悪そうです。 http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.rev9.ftb3.diff --- osawa From oyama @ module.jp Sun Apr 10 23:45:34 2005 From: oyama @ module.jp (Hiroyuki OYAMA) Date: Sun, 10 Apr 2005 23:45:34 +0900 Subject: [Senna-dev 23] Re: [patch] sen_records_curr_key() In-Reply-To: <20050410042523.GA7797@fracture.net.dhis.org> References: <20050409192245.GA11659%oyama@module.jp> <20050409193718.GA15792%oyama@module.jp> <20050410042523.GA7797@fracture.net.dhis.org> Message-ID: <20050410144534.GA22614%oyama@module.jp> module.jpの小山です。 rev.10 リリースありがとうございます。 On Sun, Apr 10, 2005 at 01:25:23PM +0900, morita @ razil.jp wrote: > (せっかくのパッチなのに適用できずすみません) いえいえ。こちとら現実逃避の一環で書いて見ているだけですの で (笑) 現実逃避ついでに senn-perl rev.2を現行APIに適当にあわせ、と りあえず動くようにしてみました。 # Senna::Index::open()あたりの引数の処理とか色々怪しいですが :-) http://module.jp/dist/senna-perl-rev2.senna-rev10.diff tied hashなdbmとSenna.pmを組み合わせたモジュールを書いたりし ても面白そうですね。 ___ Hiroyuki OYAMA , Hackしてる? ----> http://module.jp/book/ From daisuke @ wafu.ne.jp Mon Apr 11 08:42:22 2005 From: daisuke @ wafu.ne.jp (Daisuke Maki) Date: Mon, 11 Apr 2005 08:42:22 +0900 Subject: [Senna-dev 24] Re: [patch] sen_records_curr_key() In-Reply-To: <20050410144534.GA22614%oyama@module.jp> References: <20050409192245.GA11659%oyama@module.jp> <20050409193718.GA15792%oyama@module.jp> <20050410042523.GA7797@fracture.net.dhis.org> <20050410144534.GA22614%oyama@module.jp> Message-ID: <4259B9DE.4050304@wafu.ne.jp> こちらのMLは初投稿です。 牧です。 > 現実逃避ついでに senn-perl rev.2を現行APIに適当にあわせ、と > りあえず動くようにしてみました。 > # Senna::Index::open()あたりの引数の処理とか色々怪しいですが :-) > > http://module.jp/dist/senna-perl-rev2.senna-rev10.diff お!今月中には手をつけようと思ってたのですが、ありがたいです。 最初にSenna.pmを書いた時とAPIが大分変わってしまってから手を付けてません でしたのでPerl APIもそのうちある程度根本から考え直さないといけないかもし れませんね。 今日中にパッチをチェックしますので少々お待ちくださいませ。 --d From morita @ razil.jp Mon Apr 11 10:54:10 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Mon, 11 Apr 2005 10:54:10 +0900 Subject: [Senna-dev 25] =?iso-2022-jp?b?UmU6IFtwYXRjaF0gbXlzcWw=?= =?iso-2022-jp?b?GyRCJE4bKEJJTiBCT09MRUFOIE1PREUbJEIyPkJQMX4bKEI=?= In-Reply-To: <20050410.164336.41665272.ko@yappo.ne.jp> References: <20050410.151114.74722424.ko@yappo.ne.jp> <20050410.164336.41665272.ko@yappo.ne.jp> Message-ID: <20050411015410.GA21619@fracture.net.dhis.org> > とりあえず /myisam/ft_boolean_search.c 側で実装してみたところうまく動きました。 おお。。すばらしい。 > http://tech.yappo.jp/download/senna/mysql-4.0.24.senna.rev9.ftb3.diff 拝見してますー。いましばらくお待ちを。 -- morita From daisuke @ wafu.ne.jp Mon Apr 11 11:53:16 2005 From: daisuke @ wafu.ne.jp (Daisuke Maki) Date: Mon, 11 Apr 2005 11:53:16 +0900 Subject: [Senna-dev 26] Re: [patch] sen_records_curr_key() In-Reply-To: <4259B9DE.4050304@wafu.ne.jp> References: <20050409192245.GA11659%oyama@module.jp> <20050409193718.GA15792%oyama@module.jp> <20050410042523.GA7797@fracture.net.dhis.org> <20050410144534.GA22614%oyama@module.jp> <4259B9DE.4050304@wafu.ne.jp> Message-ID: <4259E69C.6060708@wafu.ne.jp> > 今日中にパッチをチェックしますので少々お待ちくださいませ。 とりあえずコンパイル通るようにしてrev3として込みってしておきました。 あとちょっとだけ大山さんからいただいたパッチに変更を加えて、定数はSenn:: Indexにいれるようにした他、コンストラクタを my $i = Senna::Index->create(...); my $i = Senna::Index->open(...); という風に分けました。 --d From morita @ razil.jp Tue Apr 12 02:14:35 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 12 Apr 2005 02:14:35 +0900 Subject: [Senna-dev 27] =?iso-2022-jp?b?UmU6IFtwYXRjaF0gbXlzcWw=?= =?iso-2022-jp?b?GyRCJE4bKEJJTiBCT09MRUFOIE1PREUbJEIyPkJQMX4bKEI=?= In-Reply-To: <20050410.164336.41665272.ko@yappo.ne.jp> References: <20050410.151114.74722424.ko@yappo.ne.jp> <20050410.164336.41665272.ko@yappo.ne.jp> Message-ID: <20050411171435.GA6133@fracture.net.dhis.org> > > まだまだ/myisam/ft_boolean_search.cの仕様が追えていないせいもあって、確実な事は > > 言えないのですが、keyを昇順ソートしてくれる版のsen_records_nextがあれば > > うまく動きそうな気がします。 > > とりあえず /myisam/ft_boolean_search.c 側で実装してみたところうまく動きました。 > ただ、全レコードを読み込んだ後にqsortしてるだけなので、効率悪そうです。 ありがとうございますー。ほぼいただいたpatchの通りに反映しました。 以下の2点だけ手を入れました。 - sen_index_selがNULLを返す場合への対処を加えた。 - sen_records *sirは_ftb_init_index_searchの中で解放するようにした。 (消費メモリ軽減のため) qsortは確かにちょびっと気になりますが、現状の実装ではsen_records_next()に手 を入れてもあまり改善しなさそうです。いずれ大きく方式を見直すかも知れません。 ft_boolean_find_relevance()が正しいスコアを返せるように修正するのもその際に あわせてやります。 -- morita From morita @ razil.jp Tue Apr 12 10:35:07 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 12 Apr 2005 10:35:07 +0900 Subject: [Senna-dev 28] =?iso-2022-jp?b?bXlzcWw0LjEbJEI3TxsoQg==?= Message-ID: <20050412013507.GA8685@fracture.net.dhis.org> 最近かなり頻繁にsennaの版を更新していますので、 折角作って頂いた4.1用パッチを早めにとりこみたいと考えていますが、 私の手元の環境ではうまく動作してくれないのです。 (fulltext index を作成するタイミングでフリーズしてしまう) どなたか4.1系での動作に成功している方はいらっしゃいますか? > また、4.1系に対応させるべく4.1.10aをベースにしたパッチも作りました。 > http://tech.yappo.jp/download/senna/mysql-4.1.10a.senna.diff -- morita From ko @ yappo.ne.jp Tue Apr 12 10:36:32 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Tue, 12 Apr 2005 10:36:32 +0900 (JST) Subject: [Senna-dev 29] =?iso-2022-jp?b?UmU6IFtwYXRjaF0gbXlzcWw=?= =?iso-2022-jp?b?GyRCJE4bKEJJTiBCT09MRUFOIE1PREUbJEIyPkJQMX4bKEI=?= In-Reply-To: <20050411171435.GA6133@fracture.net.dhis.org> References: <20050410.151114.74722424.ko@yappo.ne.jp> <20050410.164336.41665272.ko@yappo.ne.jp> <20050411171435.GA6133@fracture.net.dhis.org> Message-ID: <20050412.103632.112607032.ko@yappo.ne.jp> 大沢です。 > ありがとうございますー。ほぼいただいたpatchの通りに反映しました。 > 以下の2点だけ手を入れました。 ありがとうございます。 > qsortは確かにちょびっと気になりますが、現状の実装ではsen_records_next()に手 > を入れてもあまり改善しなさそうです。いずれ大きく方式を見直すかも知れません。 当所はsen_set_sort()にも若干期待をしてみたのですが、結局はqsortを利用する事と と同じっぽいので諦めました。 複合語検索もSenna側でマッチング出来るようにする方向性になるかな? と予測した上での暫定パッチでした。 --- osawa From morita @ razil.jp Wed Apr 13 06:46:54 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 13 Apr 2005 06:46:54 +0900 Subject: [Senna-dev 30] =?iso-2022-jp?b?bXlzcWwgYmluZGluZyBvcmlnaW5hbCBm?= =?iso-2022-jp?b?dWxsdGV4dCBpbmRleCAbJEJMNTh6Mj0bKEI=?= Message-ID: <20050412214654.GA23326@fracture.net.dhis.org> mysql binding において、従来はオリジナルの fulltext index と senna のインデックスの両方を作成するようにしていたのですが、 オリジナルのインデックス更新に長い時間を要していることが分かったので、 rev14からはこちらの方を作成しないようにしました。 結果として更新性能がかなり向上したようです。 (私の手元の環境ではfulltext indexを持つテーブルの更新速度が 4倍以上速くなりました) -- morita From ko @ yappo.ne.jp Tue Apr 19 11:30:13 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Tue, 19 Apr 2005 11:30:13 +0900 (JST) Subject: [Senna-dev 31] =?iso-2022-jp?b?bWVjYWItMC44MS5tdGUucGF0Y2g=?= =?iso-2022-jp?b?GyRCJCwbKEJGZWRvcmFDb3JlMxskQiRHSVQ2cTlnSC9AOBsoQg==?= Message-ID: <20050419.113013.104040735.ko@yappo.ne.jp> 大沢です。 FedoraCore3にて、Senna環境を構築をしてたのですがmecab-0.81.mte.patchを当てた libmecab.soが正常に動作しませんでした。 gcc -vの結果は下記のとおりです。 gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) 下記のソースを mecab.c------------------------------------------ #include int main () { char *arg[] = {"", "-Owakati"}; mecab_load_dictionary(2, arg); } ------------------------------------------ $ gcc -o mecab mecab.c -lmecab して $ gdb ./mecab (gdb) run としたら、下記のメッセージが表示され ------------------------------------------ Program received signal SIGSEGV, Segmentation fault. 0x006a325d in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::insert_unique () from /usr/local/lib/libmecab.so.0 ------------------------------------------ (gdb) bt したら、下記のようになりました。 ------------------------------------------ #0 0x006a325d in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::insert_unique () from /usr/local/lib/libmecab.so.0 #1 0x0069eeb6 in MeCab::Param::setProfile () from /usr/local/lib/libmecab.so.0 #2 0x006a1c85 in MeCab::Param::open () from /usr/local/lib/libmecab.so.0 #3 0x006b508d in MeCab::SharedResource::open () from /usr/local/lib/libmecab.so.0 #4 0x006b8d15 in MeCab::SharedResourceOpen () from /usr/local/lib/libmecab.so.0 #5 0x006bf9ca in mecab_load_dictionary () from /usr/local/lib/libmecab.so.0 #6 0x0804849c in main () ------------------------------------------ mecabのsrc/param.cppのconf変数に値を入れる時にエラーが出ているようなので conf.clear()してみたり色々やっているうちに mecab-0.81.mte.patchにpatchを当てる事で正常に動作するようになりました。 mecab-0.81.mte.patch.patch------------------------------------------ --- mecab-0.81.mte.patch 2005-04-11 10:19:25.000000000 +0900 +++ mecab-0.81.mte.patch.patch 2005-04-18 19:09:23.140384355 +0900 @@ -482,7 +482,7 @@ + + bool SharedResource::open(int argc, char** argv) + { -+ if (opened) close(); ++ opened = true;close(); + if (! param.open (argc, argv, long_options)) { + return false; + } ------------------------------------------ 正直STLには疎いので、この対処方で良いのかどうか分りませんが 応急処置という事で。。。 --- osawa From ko @ yappo.ne.jp Tue Apr 19 11:49:33 2005 From: ko @ yappo.ne.jp (Kazuhiro Osawa) Date: Tue, 19 Apr 2005 11:49:33 +0900 (JST) Subject: [Senna-dev 32] =?iso-2022-jp?b?W2J1Z10gbXlzcWwbJEIkRyROGyhCSU4g?= =?iso-2022-jp?b?Qk9PTEVBTiBNT0RFGyRCJHJNeE1RJDckPxsoQnVwZGF0ZS9kZWxldGU=?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= Message-ID: <20050419.114933.78716218.ko@yappo.ne.jp> 大沢です。 IN BOOLEAN MODEを利用してupdate/deleteを行なうと予期せぬ結果になります。 例えば、 delete from a where match (b) against ('+senna' IN BOOLEAN MODE); というクエリを発行するとaテーブルの全レコードが削除されます。 delete from a where match (b) against ('senna'); ならば、期待どおりの結果になります。 回避策としては、deleteにIN BOOLEAN MODEを使わない事でしょうか。 #updateも同様です。 --- osawa From morita @ razil.jp Tue Apr 19 15:04:08 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 19 Apr 2005 15:04:08 +0900 Subject: [Senna-dev 33] =?iso-2022-jp?b?UmU6IG1lY2FiLTAuODEubXRlLnBhdGNo?= =?iso-2022-jp?b?GyRCJCwbKEJGZWRvcmFDb3JlMxskQiRHSVQ2cTlnSC8bKEI=?= =?iso-2022-jp?b?GyRCQDgbKEI=?= In-Reply-To: <20050419.113013.104040735.ko@yappo.ne.jp> References: <20050419.113013.104040735.ko@yappo.ne.jp> Message-ID: <20050419060408.GA11647@fracture.net.dhis.org> > FedoraCore3にて、Senna環境を構築をしてたのですがmecab-0.81.mte.patchを当てた > libmecab.soが正常に動作しませんでした。 情報 & 原因追求 & パッチ、ありがとうございます。大変助かります。 静的オブジェクトの初期化の振舞がgccの版によって違うような感じですね。 SharedResource::openについては頂いたパッチで問題なく動作しますが、 その他のメンバ関数でもopenedを参照しているので抜本的に直す必要がありそうです。 http://www.mozilla-japan.org/hacking/portable-cpp.html#dont_use_static_constructors にならってパッチを書き換えてみました。 http://dev.razil.jp/archive/mecab-0.81.mte.patch.20050419 に置いています。私の手元ではうまく動いています。 もしよろしかったら大沢さんの環境で試してみていただけると幸いです。 -- morita From morita @ razil.jp Tue Apr 19 15:36:46 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Tue, 19 Apr 2005 15:36:46 +0900 Subject: [Senna-dev 34] =?iso-2022-jp?b?UmU6IG1lY2FiLTAuODEubXRlLnBhdGNo?= =?iso-2022-jp?b?GyRCJCwbKEJGZWRvcmFDb3JlMxskQiRHSVQ2cTlnSC8bKEI=?= =?iso-2022-jp?b?GyRCQDgbKEI=?= In-Reply-To: <20050419060408.GA11647@fracture.net.dhis.org> References: <20050419.113013.104040735.ko@yappo.ne.jp> <20050419060408.GA11647@fracture.net.dhis.org> Message-ID: <20050419063646.GA7340@fracture.net.dhis.org> > http://dev.razil.jp/archive/mecab-0.81.mte.patch.20050419 > > に置いています。私の手元ではうまく動いています。 > > もしよろしかったら大沢さんの環境で試してみていただけると幸いです。 すみません。ダメみたいです。 対策考えます。 -- morita From morita @ razil.jp Wed Apr 20 06:26:52 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 20 Apr 2005 06:26:52 +0900 Subject: [Senna-dev 35] =?iso-2022-jp?b?UmU6IFtidWddIG15c3FsGyRCJEcbKEI=?= =?iso-2022-jp?b?GyRCJE4bKEJJTiBCT09MRUFOIE1PREUbJEIkck14TVEbKEI=?= =?iso-2022-jp?b?GyRCJDckPxsoQnVwZGF0ZS9kZWxldGUbJEIkSyREJCQbKEI=?= =?iso-2022-jp?b?GyRCJEYbKEI=?= In-Reply-To: <20050419.114933.78716218.ko@yappo.ne.jp> References: <20050419.114933.78716218.ko@yappo.ne.jp> Message-ID: <20050419212652.GA2512@fracture.net.dhis.org> > IN BOOLEAN MODEを利用してupdate/deleteを行なうと予期せぬ結果になります。 情報ありがとうございます。 http://qwik.jp/senna/9.html とりあえずこちらに載せました。 (mysqlバインディング関連の情報はこちらにまとめたいと思います) 原因の方はまだ解析できてません。 -- morita From morita @ razil.jp Wed Apr 20 16:31:40 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 20 Apr 2005 16:31:40 +0900 Subject: [Senna-dev 36] =?iso-2022-jp?b?ZGViaWFuGyRCTVElUSVDJTEhPCU4GyhC?= Message-ID: <20050420073140.GA30313@fracture.net.dhis.org> インストール作業が何かと煩雑なので、debian用のパッケージを作りました。 (mecab, mysqlのパッケージはパッチを当てた非公式のものです) debian/sargeで以下の手順でmysql + sennaが正常にインストールできています。 # mecab install wget http://dev.razil.jp/archive/deb/libmecab0_0.81-0.1_i386.deb wget http://dev.razil.jp/archive/deb/mecab-utils_0.81-0.1_i386.deb sudo dpkg -i libmecab0_0.81-0.1_i386.deb mecab-utils_0.81-0.1_i386.deb # mecab dictionary install sudo apt-get install mecab-ipadic # senna install wget http://dev.razil.jp/archive/deb/libsenna0_0.1-1_i386.deb sudo dpkg -i libsenna0_0.1-1_i386.deb # mysql install wget http://dev.razil.jp/archive/deb/mysql-client_4.0.24-5.1_i386.deb wget http://dev.razil.jp/archive/deb/libmysqlclient12_4.0.24-5.1_i386.deb wget http://dev.razil.jp/archive/deb/mysql-common_4.0.24-5.1_all.deb wget http://dev.razil.jp/archive/deb/mysql-server_4.0.24-5.1_i386.deb sudo dpkg -i libmysqlclient12_4.0.24-5.1_i386.deb mysql-common_4.0.24-5.1_all.deb mysql-client_4.0.24-5.1_i386.deb mysql-server_4.0.24-5.1_i386.deb -- morita From morita @ razil.jp Wed Apr 20 16:34:52 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 20 Apr 2005 16:34:52 +0900 Subject: [Senna-dev 37] =?iso-2022-jp?b?bXlzcWwgcmVwbGljYXRpb24g?= =?iso-2022-jp?b?GyRCJTUlXSE8JUgbKEI/?= Message-ID: <20050420073452.GB30313@fracture.net.dhis.org> 昨日コミットしたrev18でテストしてみたところ、 mysqlのレプリケーションが正しく動作してるっぽいです。 マスター/スレーブの設定した後、 スレーブだけにfulltext indexを張ってみたところ、 マスターの更新を反映しつつ、 スレーブ側でmatch () against ()条件で検索できています。 お知らせまで。 -- morita From morita @ razil.jp Wed Apr 20 17:00:06 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Wed, 20 Apr 2005 17:00:06 +0900 Subject: [Senna-dev 38] =?iso-2022-jp?b?UmU6IG1lY2FiLTAuODEubXRlLnBhdGNo?= =?iso-2022-jp?b?GyRCJCwbKEJGZWRvcmFDb3JlMxskQiRHSVQ2cTlnSC8bKEI=?= =?iso-2022-jp?b?GyRCQDgbKEI=?= In-Reply-To: <20050419.113013.104040735.ko@yappo.ne.jp> References: <20050419.113013.104040735.ko@yappo.ne.jp> Message-ID: <20050420080006.GA7090@fracture.net.dhis.org> debian/sargeでgcc-3.4でmakeしてみましたが、再現できませんでした。 gcc バージョン 3.4.4 20050314 (prerelease) (Debian 3.4.3-12) 3.4.2だけで起きる不具合なんでしょうかねぇ。。うーむ。 > FedoraCore3にて、Senna環境を構築をしてたのですがmecab-0.81.mte.patchを当てた > libmecab.soが正常に動作しませんでした。 > > gcc -vの結果は下記のとおりです。 > gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) -- morita From morita @ razil.jp Sat Apr 23 21:20:28 2005 From: morita @ razil.jp (morita @ razil.jp) Date: Sat, 23 Apr 2005 21:20:28 +0900 Subject: [Senna-dev 39] =?iso-2022-jp?b?bWVjYWItMC44MRskQiRLRnM9RSVVGyhC?= =?iso-2022-jp?b?GyRCJWohPElUNnE5ZxsoQg==?= Message-ID: <20050423122028.GA3407@fracture.net.dhis.org> mecab-0.81に新たな不具合を発見しました。 マルチスレッド環境ではプログラムをsegfault等で停止させる可能性があります。 (mysql bindingでも発生します) この問題への対処をmecab-0.81.mte.patchに反映しました。 (合わせて大沢様からいただいたFedoraCore3用パッチも反映しています。) http://dev.razil.jp/archive/mecab-0.81.mte.patch からダウンロードして下さい。 http://dev.razil.jp/archive/deb/ から取得できるdebianパッケージにも新しい変更を反映してあります。 -- morita