1 名前:うんこ船長 [2005/06/15(水) 00:14:13 ID:nYzPplAZ] ないようなので立ててみました。 dev.razil.jp/project/senna/
14 名前:nobodyさん mailto:sage [2005/12/08(木) 05:44:00 ID:???] 独自パッチバージョンのMeCabが必要という時点で、 お試しで軽く触ろうという意欲が無くなるな。 sennaにしか効果ないパッチじゃなく、MeCab全体に役立つパッチとして MeCab公式に取り込んでもらいたいところだな。
15 名前:nobodyさん [2005/12/18(日) 21:36:06 ID:RgxCfVuV] 使ってみるか
16 名前:nobodyさん [2006/02/15(水) 19:47:18 ID:ZxB9YIqX] 保守
17 名前:nobodyさん [2006/02/16(木) 17:00:42 ID:i7JO7WUs] >>14 MeCab0.9で取り込まれたっぽいからpatchはもういらないぽ
18 名前:nobodyさん [2006/06/21(水) 02:12:06 ID:I+o61wNk] sennaのMLのログ見てたら ひろゆきの投稿発見した lists.sourceforge.jp/mailman/archives/senna-dev/2005-October/000140.html ひろゆきって自分で鯖いじったりもしてたのね
19 名前:nobodyさん mailto:sage [2006/06/22(木) 01:32:26 ID:???] 雑誌記事が追加されてるな。 qwik.jp/senna/publication.html
20 名前:nobodyさん [2006/06/22(木) 15:24:11 ID:+CxY78Dt] MySQLバインディングのところ、 「skipmode-patchについてはここでは触れません。」 って書いてるけど、 どこで触れてるの?
21 名前:nobodyさん mailto:sage [2006/06/22(木) 17:28:13 ID:???] lists.sourceforge.jp/mailman/archives/senna-dev/2006-March/000208.html 発見した。 「limitで指定されたoffsetまで冗長なIOを抑止する」んだね。 で、2ndパッチを当てたら特にはいらないと。
22 名前:nobodyさん mailto:sage [2006/06/22(木) 21:44:13 ID:???] なんでこのスレ書き込み少ないん? 普通に便利だと思うんだが…
23 名前:nobodyさん mailto:sage [2006/06/23(金) 15:51:45 ID:???] >>22 使用する機会が少ないから。 ホームページならGoogleでいいし、blogなどの検索機能でも十分だし。 それ以外ではSQLのlike検索で十分なパフォーマンスになる程度の量しかない。
24 名前:nobodyさん [2006/07/30(日) 14:02:34 ID:zmnCWUN9] PHPでSennaを使ってHTMLを検索するときに、インデックス生成はどうやってやればいいんでしょうか? MySQLを使用したものしか製作したことがないので…
25 名前:nobodyさん mailto:sage [2006/07/30(日) 20:10:49 ID:???] >>24 PHP bindingを使う、 qwik.jp/senna/PHP_binding.html のだが、PHPバインディングの開発は止まっているみたい。
26 名前:nobodyさん mailto:sage [2006/08/01(火) 13:27:49 ID:???] >>24 これって24さんかな? xoopscube.jp/modules/xhnewbb/viewtopic.php?topic_id=3443&post_id=14886
27 名前:nobodyさん mailto:sage [2006/08/03(木) 22:25:33 ID:???] >>22 Mysqlの全文検索がUTF8対応だからじゃないかな N文字でも分かち書きでもいいけどとにかく適当に分割してやれば日本語でも検索できる じゃあSennaって?ていう感じじゃないだろうか
28 名前:nobodyさん mailto:sage [2006/08/19(土) 12:09:09 ID:???] っていうか2ch絡みの企業の製品なんて使いたくもない。
29 名前:nobodyさん mailto:sage [2006/11/01(水) 16:19:47 ID:???] Lucidaって中身sennaだったんだね
30 名前:nobodyさん mailto:sage [2006/11/01(水) 19:41:42 ID:???] それをいうならLudiaだろ・・・
31 名前:nobodyさん mailto:sage [2006/11/02(木) 19:03:56 ID:???] >>pc8.2ch.net/test/read.cgi/php/1157467026/382 >382 名前:nobodyさん sage 投稿日:2006/10/05(木) 14:59:05 ID:??? >MySQLならMeCabとかで分かち書きして、UTF-8でFULLTEXTに放り込む手もある。 こんな事を書いてたら某所で取り上げられてて驚いた。(適当に要約し引用) >MySQL&PostgreSQLの全文検索は転置インデックスだが、Sennaは完全転置インデックスを採用している。 >完全転置インデックスの採用によって、Sennaはフレーズ検索する事ができる。 >>27 フレーズ検索に対応ってのは結構大きなポイントだねぇ
32 名前:nobodyさん mailto:sage [2006/11/02(木) 21:25:40 ID:???] >>30 間違えた
33 名前:nobodyさん mailto:sage [2006/11/02(木) 21:58:41 ID:???] 素直な30に萌えた。
34 名前:nobodyさん [2007/02/23(金) 18:48:38 ID:YFrEMN+P] 1.0完成記念age! 少し前の使ってるけど 入れ直した方がいいのかな?
35 名前:nobodyさん mailto:sage [2007/02/24(土) 01:43:06 ID:???] >>25 期待していい?
36 名前:nobodyさん [2007/02/24(土) 21:56:13 ID:5ktSNz/w] >>34 入れなおして、インデックスを作りなおすといいかも。 安定性が増している・・・はず・・・
37 名前:nobodyさん mailto:sage [2007/02/28(水) 00:12:15 ID:???] phpバインディングまだぁ? この前、ぐにゃらくんが PHP extensionの書き方勉強してるっていうんで 期待してたのだけれども。
38 名前:nobodyさん mailto:sage [2007/02/28(水) 02:15:14 ID:???] >>37 rm -rfで書き途中のヤツを消してしまった。 今は書き直して、basic APIまでできてる。
39 名前:nobodyさん mailto:sage [2007/02/28(水) 02:27:09 ID:???] 大量のデータをDBも使わずにいじるケースが想像しにくいんだけど PHPバインディングってどういう用途で使うの?
40 名前:nobodyさん mailto:sage [2007/02/28(水) 03:35:07 ID:???] >>39 んだ。特に今のSennaはストレージを持っていないから、 ドキュメントの更新は古いドキュメントの内容を渡さないといけない。 となると、実用的なアプリを書くとなると、 やはりBDBとかsqliteに別途ドキュメント情報を持っておく必要があると思うんだけどなあ・・・
41 名前:nobodyさん [2007/03/01(木) 02:30:02 ID:URZ8Y8TX] >>37 というわけで、作り方だけ公開してみた。 地味にAPIを増やしていく予定。
42 名前:nobodyさん mailto:sage [2007/03/02(金) 00:18:50 ID:???] 現在PHP+MySQLでシステム運用してるけど、もしも導入が超簡単なら導入したい。 例えばsennaのファイルをどっかに置いて、ちょこっと設定ファイルをいじるだけでOK、とか。 それも現在のシステム構成に影響出さずに導入できるなら・・・ それならお金出してでも導入したい。 3万までなら出す。
43 名前:nobodyさん mailto:sage [2007/03/02(金) 02:08:02 ID:???] 3万かよwww
44 名前:nobodyさん mailto:sage [2007/03/02(金) 02:20:15 ID:???] パッケージソフトとして3万ならそこそこ高価だろ。 別にたいした規模のソフトじゃないし。
45 名前:nobodyさん mailto:sage [2007/03/02(金) 11:48:55 ID:???] >>42 うひひ。果報は寝て待て。 >>44 オープンソースなので、勝手にrpm作って売ってもOKですよ。
46 名前:nobodyさん mailto:sage [2007/03/03(土) 01:28:23 ID:???] >>45 >オープンソースなので、勝手にrpm作って売ってもOK 訴えられても知らんよ・・・
47 名前:nobodyさん mailto:sage [2007/03/03(土) 01:39:49 ID:???] 訴えられるわけないだろw 元からそういうものなんだから
48 名前:nobodyさん mailto:sage [2007/03/03(土) 01:53:16 ID:???] >>47 じゃあ、お前が売れば? オープンソースの定義・概念や意味を本当に理解しているのなら、ね。
49 名前:nobodyさん mailto:sage [2007/03/03(土) 09:52:29 ID:???] >>42 MySQLのリビルドが必要だから超簡単とは言いづらい. dump→リビルド→データ流し込むの作業が簡単かどうか. LudiaはPostgreSQLのリビルドの必要なく組み込めるらしい. >>49 NTTデータ社員乙
50 名前:nobodyさん mailto:sage [2007/03/03(土) 16:33:11 ID:???] >>49 >dump→リビルド→データ流し込むの作業が簡単かどうか どっちって言うと、超難しい&めんどくさい。 dumpと流し込みはいいとして、リビルドってのが激しくイヤだ。 絶対に何かトラブルが発生するのが目に見えている。
51 名前:nobodyさん mailto:sage [2007/03/03(土) 17:00:23 ID:???] >>50 だったら何もしないのがいいと思うYo!
52 名前:nobodyさん mailto:sage [2007/03/03(土) 18:42:15 ID:???] >>51 うん、だからもっと簡単に導入できるソリューションが出るまで我慢する!
53 名前:nobodyさん mailto:sage [2007/03/03(土) 21:49:06 ID:???] >>39 ドキュメントは MySQL にもってるけど、Senna を MySQL に組み込むのはちょっと嫌というケースかな。 PHP バインディングで MySQL 上の ID とからめてインデックスを作っておいて、検索→ドキュメントは MySQL から引っ張り直す、みたいな。 しかし、PHP の検索部分を mod_php とかで動かすと、インデックスの読み込みで httpd のプロセスが肥大化したりしないのだろうか。 あと、ロードのオーバーヘッドとかも気になる。 そういう点では、PHPバインディングに実用性あるのかは俺も聞きたい。
54 名前:nobodyさん mailto:sage [2007/03/04(日) 13:44:29 ID:???] >>53 なるほどね…疎結合でいいならそういう用途もあるなあ。 プロセス肥大化については、 インデックスファイルはmmapで読み込まれるので まあ大丈夫だとは思います。 ロードのオーバヘッドはある程度はあるかなあ。 mod_phpにもなんらかの形でインスタンスを保持しておく方法があると思うので、 それを利用すればイケるんじゃないかな…(適当)
55 名前:53 mailto:sage [2007/03/05(月) 15:14:34 ID:???] >>54 例えば mod_php を動かしている httpd のプロセスが複数動いているとして、インデックスをロードする領域は共有されてるって事ですか?
56 名前:54 mailto:sage [2007/03/05(月) 16:56:40 ID:???] >>55 そのとおりッ!!!
57 名前:53 mailto:sage [2007/03/06(火) 01:23:12 ID:???] なるほど、ありがとうございます。
58 名前:nobodyさん [2007/03/09(金) 23:18:18 ID:KVrCgq4L] search.yahoo.co.jp/promo/searchbox.html にYahooの検索エンジン(html用がある)
59 名前:nobodyさん [2007/03/09(金) 23:19:26 ID:KVrCgq4L] )の位置間違えたorz
60 名前:nobodyさん [2007/03/10(土) 06:36:26 ID:e0KlCCjB] 世界の権威であるCOMDEXが「21世紀のスタンダード」に認定したソフトウェア、 それがホームページ制作王である。ホームページ制作王に不可能はない! 標準外のイカサマ商品の売買で生計を立てるインチキ企業工作員が、 本当は血縁でもセレブでもなんでもない「叶姉妹」や、データを捏造した社員は 月曜朝に株で大儲けしている「あるある大辞典」にコロっと騙される日本人の気質を科学的に分析し、 ホームページ制作王を使ったことのない者や、使いこなせなかった者を煽動し、 彼らに八つ当たりのデタラメな風評をデッチ上げさせたために、我が国はホームページ制作王の 標準化に失敗し、21世紀も7年目に入った今、我が国のオーソリューションは世界に大きく遅れを取っている。 世界標準・ホームページ制作王の普及を妨げる、あらゆる工作活動を糾弾せねばならない。 制作王の普及によって、標準未満のオーサリングツールしか作れない連中を淘汰しなければならない。 そして、我が国は、1日も早くホームページ制作王の標準化を達成し、世界に追いつかねばならない。 世界が認めたホームページ制作王 pc11.2ch.net/test/read.cgi/hp/1144987720/
61 名前:nobodyさん [2007/03/17(土) 07:46:05 ID:CM4Ebl87] qwik.jp/senna/IndexFile.html ≫インデックスのサイズ ≫n-gramインデックスなら文書の賞味サイズの2.5倍程度になります。 とあるんですが、2GBのテーブルなら約5GBのファイルが出来るってこと なのでしょうか?
62 名前:nobodyさん mailto:sage [2007/03/17(土) 08:16:54 ID:???] 新しいサブプロジェクトできたみたい qwik.jp/tritonn/ OSC2007のSennaのプレゼン見てきたけど、かなりおもしろかった。 その日のセッションの中で一番よかったかも。
63 名前:nobodyさん mailto:sage [2007/03/17(土) 15:41:43 ID:???] pearのインストールと同じくらい簡単になってくれないと、導入する気が起きない。
64 名前:nobodyさん mailto:sage [2007/03/17(土) 23:40:44 ID:???] >>62 おお!最近Senna、熱いっすねー。
65 名前:nobodyさん mailto:sage [2007/03/18(日) 23:26:10 ID:???] >>61 2GBの文書だったら、3GBくらいになると思う。経験的に…
66 名前:nobodyさん mailto:sage [2007/03/19(月) 10:17:28 ID:???] >>62 もれもOSC2007見てきたけど、なかなか良かった。 今後tritonnのドキュメントが充実していけば嬉しいな。 でも、確かにMeCabとSenna入れて、それからMySQLにパッチあてて コンパイルしないといけないってのはメンドイな。。。。
67 名前:nobodyさん mailto:sage [2007/03/20(火) 17:35:18 ID:???] シェルから「senna install」だけで使えるようになってくれるなら、鯖1台につき1万ずつ払う。
68 名前:nobodyさん mailto:sage [2007/03/21(水) 01:44:58 ID:???] そのsenna コマンドはどうやってインストールするんだ。 $ sudo apt-get install senna か $ cd /usr/ports/database/senna && sudo make install とかじゃだめなんか
69 名前:nobodyさん mailto:sage [2007/03/21(水) 08:17:37 ID:???] >>68 「たとえば」の話にマジレスするなよ。 要するに簡単にインストールできないかな、ってだけだ。
70 名前:nobodyさん mailto:sage [2007/03/22(木) 00:44:36 ID:???] 激速です 休み一日潰したかいがあったよ
71 名前:nobodyさん mailto:sage [2007/03/22(木) 00:46:58 ID:???] >>70 具体的に何がどれくらい変わったのかね。
72 名前:nobodyさん mailto:sage [2007/03/22(木) 04:09:08 ID:???] 0.01秒が、なんと0.001秒!
73 名前:nobodyさん mailto:sage [2007/03/22(木) 05:09:20 ID:???] >>71 7秒平均かかってたクエリーが.5秒以下になった Webベースのアプリなんでこれで十分す >>72 mysqlのコマンドってmsecレベルの計測出来るの?
74 名前:nobodyさん mailto:sage [2007/03/22(木) 06:07:09 ID:???] どれぐらいのデータ量で7秒が.5秒になったのか教えてくれると 俺はきっとハッピーな気分になれるんだ
75 名前:nobodyさん mailto:sage [2007/03/22(木) 06:09:17 ID:???] like検索してたのをsennaに置き換えたらそうなるよね 10万件くらいあればlike検索で7秒くらいかかるんじゃない?
76 名前:nobodyさん mailto:sage [2007/03/22(木) 07:30:58 ID:???] 全然具体的じゃなかったですね、、 150万件でテーブル[int(10),text]サイズが1.5Gくらいです 検索は75の書いておられる通りで、 MATCH(title) AGAINST('+Sagasu -Iranai' IN BOOLEAN MODE) みたいなのをlikeでやってました “これで十分す”と書いておきながら構築中に気になった (スレ違いな)質問いいでしょか? qwik.jp/senna/mysql_configure.html CPU: Intel(R) Pentium(R) D CPU 3.20GHz stepping 04 なのですが、configure時の-mtuneってどれがよかったんでしょ? あと、MySQL+PHPではsmp対応カーネルを使わないほうがいい とググって得た情報なのですがこれは正しいですか? というような質問をしているものですのであまり参考にならないとは 思いますが。。
77 名前:70(↑も) mailto:sage [2007/03/22(木) 08:04:01 ID:???] そういえばsennaがINDEXはったテーブルってdrop出来ない、、 ググると結構前に「直したよ」っていうのが見つかったんだけど あ、tritonn-1.0.0.mysql-5.0.37.senna-1.0.2でインストールしました (ブラジルの中の人ってここ見てるんでしょか?)
78 名前:nobodyさん mailto:sage [2007/03/22(木) 08:04:48 ID:???] 逆に言えば、そんなにレコードが莫大でないケース(たとえば社内イントラブログとか)なら、 無理にsenna導入しなくてもLIKE検索で十分ってことだな。。。
79 名前:nobodyさん mailto:sage [2007/03/23(金) 00:57:11 ID:???] >>67 マジ!? 作業しにいきますよ… 手で入れるけどさ。 >>68 Senna本体のインストールは難しくないんだけどね… MySQL + SennaをDebianやFreeBSDの公式パッケージにしたいです。 パッケージ化の実作業はともかく、 メンテナとしてパッケージを投稿するための How Toを勉強する時間が足りないです。 >>72 うひひ。大規模サイトだと、それ結構効いてくるんすよ、 とマジレス。
80 名前:nobodyさん mailto:sage [2007/03/23(金) 00:58:08 ID:???] >>76 SMPじゃないほうがいいのは、 多分InnoDBのことじゃないかしら。詳しくないけど。 OpteronとかNoconaとかガンガン指定して PHPフロントのシステムを動かしているけど、問題ないよ。 >>77 直ってるとは思うけど、 MyISAMのテーブルのドロップなら、 最悪ファイルをすべてrmすればOK。 tritonn-1.0.0はdrop indexで 一時インデックスが残るバグがあるけれど、 これも一時インデックス(#で始まるファイル名を持つ) をrmすればOK。1.0.1を急いで入れる必要なし。 >>78 そのとおり。 将来的に困ったら導入を検討してくだせぇ… (媚びた目をして)
81 名前:70 mailto:sage [2007/03/23(金) 07:21:32 ID:???] >>79-80 aptで入るとうれしいですね あといろいろ教えていただいてありがとうございます 一時インデックスはちょっと気になっていました 1.0.1でてたんですね >>78 速度面以外でもFULLTEXT INDEXになってクエリーがシンプルになったり MeCABの恩恵かと思いますが、カタカナや英数記号など 半角全角・大文字小文字を意識せずに検索出来るので その辺の処理を省けたりで文書量が少ないものでも 利用方法によってはメリットがあるような気がします
82 名前:nobodyさん mailto:sage [2007/03/23(金) 08:44:05 ID:???] rpmパッケージ作ってくれたらお金払いたい。
83 名前:nobodyさん mailto:sage [2007/03/23(金) 09:28:55 ID:???] SennaインストールのためMySQLにパッチ当てる ↓ MySQLバージョンアップ ↓ MySQLにパッチ ↓ MySQLバージョンアップ ↓ MySQLにパッチ ↓ MySQLバージョンアップ ↓ MySQLにパッチ
84 名前:nobodyさん [2007/03/23(金) 10:32:11 ID:/lSdv2/+] MATCH (title,body) でエラーしたり全レコードHITしたり
85 名前:nobodyさん mailto:sage [2007/03/23(金) 10:48:37 ID:???] それはない
86 名前:nobodyさん mailto:sage [2007/03/23(金) 11:02:26 ID:???] >>81 あいあいー。aptで入るように頑張りたい。 正規化は自前でやっているので、MeCabなしでも恩恵を受けられます。 >>82 CentOS 4.4でx86_64でよければ作るよ! RedHat系でi386環境がなくて… >>83 マンドクセーよね。 やはり公式パッケージ化を… ちなみに、Sennaの通常のバージョンアップがあっても MySQLの再コンパイルは必要ねっす。 でも、Tritonnのバージョンアップがあったら 再コンパイルが必要っす。 MySQL 5.1以降のplugin storageでなんとかなるか、とも思ったんだけど、 やはり高速にするには本体に手を入れないといけないのでアウト。 Ludiaは本体にパッチ入れなくていいけど、 それでもPg 8.1からPg 8.2のバージョンアップで動かなくなったしなあ… ま、Pg 8.1->8.2は中身変わりすぎなんだけど。 >>84 文字コード間違えてるとそんな挙動もあるかも。
87 名前:nobodyさん mailto:sage [2007/03/23(金) 11:17:04 ID:???] >>86 Fedora用のパッケージ作って売ったら儲かると思うよ。
88 名前:nobodyさん mailto:sage [2007/03/24(土) 00:06:40 ID:???] RHEL 用ならともかく Fedora 用じゃ儲からないだろ
89 名前:nobodyさん mailto:sage [2007/03/24(土) 06:39:31 ID:???] Fedora儲かるよ。ユーザー数多いし。
90 名前:nobodyさん mailto:sage [2007/03/24(土) 14:47:40 ID:???] Senna, Tritonn, Ludia の Portfile (MacPorts) 書いたよ。 ttp://lapangan.net/darwinports/index.php?cmd=read&page=PrivatePortfile%2FSenna MeCab のデフォルト辞書を UTF-8 で作成する代わりに lex.c に手を入れて mecab_new() の引数で UTF-8 の辞書を指定するようにしています。
91 名前:nobodyさん mailto:sage [2007/03/24(土) 21:52:10 ID:???] >>90 おおお!!!ステキだ…
92 名前:nobodyさん mailto:sage [2007/03/25(日) 00:04:28 ID:???] >>90 GJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ!!!!
93 名前:nobodyさん mailto:sage [2007/03/26(月) 00:51:35 ID:???] なんで、Sennaって、MySQLやPostgreSQLの 全文検索機能に公式に採用されないの? 一体なにがじゃましているの? 理解できない。
94 名前:nobodyさん mailto:sage [2007/03/26(月) 00:59:08 ID:???] なんで、一介の日本語検索エンジンがMySQLやPostgreSQLの 全文検索機能に公式に採用されると考えるのか理解できない。 必要な人が組み込めばいいだけ。 英語圏の人がMeCabとSenna入れるなんて考えられんだろ。 Sennaはちょっと前にメジャーバージョンが出たばかりだし、 APIも結構変わってて安定しているとは言いがたい。 実際使ってるが動作はそこそこ安定してるけどね。
95 名前:nobodyさん mailto:sage [2007/03/26(月) 01:34:44 ID:???] 例 phpには日本語サポートが含まれている。 今の時代に、日本語サポートが含まれるはずが無いなんて どういう頭をしているんだ?
96 名前:nobodyさん mailto:sage [2007/03/26(月) 01:38:07 ID:???] ばかじゃねーの・・・・ PHPと同じようにMySQLは日本語サポートしてるよ。 でPHPと同じようにSennaバインディングは組み込まれてないよ。 どういう頭をしているんだ?
97 名前:nobodyさん mailto:sage [2007/03/26(月) 01:48:12 ID:???] > PHPと同じようにMySQLは日本語サポートしてるよ。 そうだな。 だから、 > なんで、一介の日本語検索エンジンが とか > 英語圏の人がMeCabとSenna入れるなんて考えられんだろ。 とか、 そういう考えがおかしいと言うことだな。 同じ理屈で、phpも公式に採用しない理由は無いということだな。 まあ、全文検索という機能はデータベースの方が重要だから、 phpよりも先にMySQLやPostgreSQLに採用されるべきだな。
98 名前:nobodyさん mailto:sage [2007/03/26(月) 02:06:48 ID:???] ふーん。 「日本語で高度な全文検索をしたい」という99%以上のユーザに関係ない機能のために 配布パッケージに日本語形態素解析エンジンや日本語の辞書や日本語の検索エンジンライブラリを 含めることなんてありえない話だと思うがな。 あっという間にパッケージの容量とコンパイル時間が5割り増しだ。 まぁ含めろとまでは言ってなくてデフォルトで --enable-senna --senna-prefix=/usr とかをサポートしろとかいう話なのかも知れんが。 もっとも各言語の検索エンジンがMySQLに実装されてどの言語でも全文検索がデフォルトで できるようになったらすごいことだと思うけど。 MySQLはストレージであって高度な検索エンジンではないのでその方向性は限りなく ありえないものだとは言っておくよ。 必要なユーザが好きな検索エンジンを勝手に組み込めばよい。
99 名前:nobodyさん mailto:sage [2007/03/26(月) 02:17:01 ID:???] 別にMeCab使わずに日本語に特化した部分を除いても Sennaは高速全文検索として利用価値が高いと思うけど。
100 名前:nobodyさん mailto:sage [2007/03/26(月) 02:30:28 ID:???] >>98 すでにMySQLやPostgreSQLにスペース区切りという、 特定の言語に依存した全文検索機能がついている以上、 高度な検索エンジンではないとか言っても説得力が無い。 全文検索が必要かどうかの話はとっくに済んでいる。 英単語区切り以外の区切り方という、国際化対応の話なんだよ。
101 名前:nobodyさん mailto:sage [2007/03/26(月) 02:57:28 ID:???] >>100 > すでにMySQLやPostgreSQLにスペース区切りという、 > 特定の言語に依存した全文検索機能がついている以上、 > 高度な検索エンジンではないとか言っても説得力が無い。 どこが?スコア付けもしない全文検索機能が「高度な検索エンジン」か? ちがうだろ。
102 名前:nobodyさん mailto:sage [2007/03/26(月) 03:21:49 ID:???] くすくす・・・くすくす・・・くすくす・・・・・・・・・・・・・・・・・・・・・・・・ぶわーはhっははっは dev.mysql.com/doc/refman/4.1/ja/fulltext-search.html MATCH() を WHERE 節で使用すると(上の例を参照)、 返されるレコードは関連性が最も高いレコードから 低いレコードの順に自動でソートされます。
103 名前:nobodyさん mailto:sage [2007/03/26(月) 03:28:11 ID:???] >>101 重み付けはしてるよ。使ったことないけど。まぁ調べなよ。 >>100 実用的な全文検索方法って言うのは言語ごとにちがうのであって、 日本語の場合は形態素解析を用いるのが実際便利なわけだよね。 じゃぁ日本語サポートのためだけにどこかが作った日本語形態素解析器と エンジンを組み込むか?っていうとそれは無理なんじゃない? って言うことを言いたいだけだ。 メジャーバージョンがリリースされたばかりのSennaを公式に組みこまないのは 理解できないとか飛躍しすぎだよ。 各言語対応のN-gramインデックスでの検索機能を組み込んで欲しいというのならまだわかる。 ただその場合Sennaが採用されるかというと安定度や実績の面で明らかに微妙だろ。
104 名前:nobodyさん mailto:sage [2007/03/26(月) 03:30:00 ID:???] > じゃぁ日本語サポートのためだけにどこかが作った日本語形態素解析器と > エンジンを組み込むか?っていうとそれは無理なんじゃない? だからなんでなんだよw
105 名前:nobodyさん mailto:sage [2007/03/26(月) 03:46:49 ID:???] >>104 書いてんじゃんよ。>>98 あというならライセンスの問題だってある。MySQLには商用ライセンスがあるでしょ。 個人で作ってるソフトウェアじゃあるまいし、そんなにかんたんに取り込めるもんでもないだろうよ。
106 名前:nobodyさん mailto:sage [2007/03/26(月) 03:49:36 ID:???] そのほかのソフトを見てみろ。 99%の人には関係ない日本語を なんらかの形でサポートしているのが多いだろ。 それなのに日本語サポートするわけが無いなんて 理解不能。
107 名前:nobodyさん mailto:sage [2007/03/26(月) 04:01:10 ID:???] そういう暴論はもういいって。 他のソフトと同じくMySQLだって日本語はサポートしてるっていってんじゃん。 日本語形態素解析を用いた全文検索をサポートするかって話だろ。 今のところどのオープンソースのデータベースサーバもしてないよ。 もし取り込むにしたってInnoDBとかFalconとか取り込むにも実際買収したり 取り込むクォリティにするまでにかなり時間がかかってるわけ。 そのぐらい理解してくれよ。
108 名前:nobodyさん mailto:sage [2007/03/26(月) 11:12:35 ID:???] キモヲタ同士のキモキモ議論はその辺で終わりにしろ。 そんなことよりも、俺はとにかく簡単にsennaが使えるようになればそれでいいんだ。
109 名前:nobodyさん mailto:sage [2007/03/26(月) 12:25:28 ID:???] 組み込み易くする、ドキュメントとノウハウの充実を図る、 で必要十分じゃまいか。tritonnの中の人も、たぶんそう考えている だろうし。 まわりにsennaは良いよって言ったり、応援したりするだけで、 具体的にはなんの貢献もしていないフリーライダーの漏れが 意見する筋合いじゃないか。。。
110 名前:nobodyさん mailto:sage [2007/03/26(月) 14:26:59 ID:???] うひひ。盛り上がってる。 公式に組み込まれない理由… MySQLはGPL/商用のデュアルライセンスで、 基本的にソースコードの著作権はMySQL ABが全部持っている。 (InnoDBなど例外あり) SennaはLGPLなので取り込めない。 PgはBSDライセンスなので、これも取り込んでもらえないと思う。 とりあえず、mysql-sennaとかpostgresql-sennaみたいなパッケージが DebianやFreeBSDで簡単に入るようになれば問題ないと思ってます。
111 名前:nobodyさん [2007/03/27(火) 05:18:12 ID:vEc96bSI] tritonn-1.0.1.mysql-5.0.37.senna-1.0.3でインストールして使っています sennaというか全文検索エンジンの質問になると思うのですが… title:NGRAM,body:MECABで主に歌手のCD発売やコンサート情報をまとめています 例えばELLEGARDENというバンドがいるのですが、 今までLIKE '%〜%'でやっていた経緯もあり、利用者は "ELLE" などで検索をかけてきます "ELLEGARDEN"だとヒットするのですが、上記のように短縮した場合は ヒットしないようなのですが対処の方法はあるでしょうか? title(NGRAM)の方だけでもなんとかなればと思っています よろしくお願いいたします
112 名前:nobodyさん mailto:sage [2007/03/27(火) 11:28:08 ID:???] >>111 手パッチでもよいのなら… tritonn中にsen_index_createという関数が3つある。 この、第3引数、なんとかflagsを渡すところを、 なんとかflags | SEN_INDEX_SPLIT_ALPHA | SEN_INDEX_SPLIT_DIGIT | SEN_INDEX_SPLIT_SYMBOL にしてみ。 すでにパッチを当てたMySQLのソースディレクトリが残っているなら、 その中からgrepしたほうが早い。 その後make && make installして、インデックスを再作成してみて。 N-gramのtitleだけ英単語の部分一致検索が出来るようになる。
113 名前:nobodyさん [2007/03/27(火) 17:04:20 ID:9Tb1caug] sennaで求人情報の検索サイトみたいなものを作成しようかと思っているのですが 求人の検索って基本的にチェック入れたりする方が多いですよね? そういう意味で、求人情報検索にsenna導入ってどうでしょう?
114 名前:nobodyさん mailto:sage [2007/03/27(火) 17:14:36 ID:???] それを教えてくれる人を求人すればどうだ?
115 名前:nobodyさん mailto:sage [2007/03/27(火) 17:25:26 ID:???] >>112 うわっ、ありがとうございます! 自宅に戻りしだいやってみて結果を報告しますっ
116 名前:nobodyさん mailto:sage [2007/03/27(火) 22:01:38 ID:???] >>113 全文検索+他条件の検索だったら結構Sennaの得意なところ?だと思います。 全文検索が必要となった段階で導入してもいいと思います。 それまではlike '%xxx%'でしのぐといいと思うよ。
117 名前:nobodyさん mailto:sage [2007/03/27(火) 23:44:08 ID:???] senna を mysql 5.0.37に組み込んでbuildしてみた。 mysqldがぜんぜん起動せず、senna patch 無しの mysqld に戻しても起動しなくなってぶち壊したかと 思ったら、libsenna.so をロードできてなかった。ldconfig したらあっさり動いた。以上今夜のチラ裏。
118 名前:nobodyさん mailto:sage [2007/03/28(水) 01:34:59 ID:???] >>117 あるある。 /etc/ld.so.confをいじるか、 もしくはconfigure時に--prefix=/usrをつけるか。
119 名前:nobodyさん mailto:sage [2007/03/29(木) 01:20:21 ID:???] >>112 すみません 昨日はちょっと遅くなったので今日やってみました >tritonn中にsen_index_createという関数が3つある。 3ファイル(4箇所)でよかったでしょうか SHOW SENNA STATUSで3つともONになりました (MECABの方もONになりましたがよかったのかな?) 結果は英単語の部分一致検索が出来るようになったのですが 時折クエリーに時間がかかる事が発生するようになりました 通常は0.1秒以内なんですが10秒とかかかるときが何度もあります 気になるのはインデックスファイルの更新時間なんですが データのinsert,updateでは更新されていないようです 上の問題とは関係ないかもしれませんが少し気になりました 設定などで見直す所等があったらご教示お願いします
120 名前:nobodyさん mailto:sage [2007/03/29(木) 01:28:36 ID:???] >>119 4箇所か… MeCabではそのフラグは無視されるから大丈夫。 うひ!10秒!それは実用にならないなぁ… スラッシングが発生しているかも… インデックスファイル(*.SEN*)の容量リストと メモリ容量、 テーブルスキーマと 投げているクエリを教えてもらえるともっとよく分かるかもしれません。 インデックスファイルはmmapしているので、 同期される時間はOSによると思います。 あと、kernel 2.6.18(Debianのみ)と2.6.19でmmap周りにバグがあるので、 そこらへんのカーネルを使っている人は注意が必要かも。
121 名前:nobodyさん mailto:sage [2007/03/29(木) 03:50:26 ID:???] MySQL のレプリケーション環境での質問です。 Senna はスレーブとマスターの両方の MySQL にパッチ宛が必要ですか? 例えば検索クエリはスレーブの一つにしか投げないとき、マスターは Senna 無しでスレーブに Senna とかでもインデックスは更新されますか?
122 名前:nobodyさん mailto:sage [2007/03/29(木) 15:37:13 ID:???] >>121 大丈夫なはず。むしろ、そういう運用こそお勧めかも。 テーブルに付与されるインデックスがズレるので、 そこは気をつけないといけないかな。
123 名前:nobodyさん mailto:sage [2007/03/30(金) 02:01:34 ID:???] あ、なんか軽く回答してもらっちゃてありがとうございます。 インデックスがずれる?てのが分かりませんでしたが、実際に環境作ってやってみます。
124 名前:nobodyさん mailto:sage [2007/04/03(火) 16:29:29 ID:???] 公式サイトでダウンロードできるmysql-5.0.24a-senna-0.8.1-win32.zipは バインディング済みってことでいいのでしょうか?
125 名前:nobodyさん mailto:sage [2007/04/04(水) 00:35:21 ID:???] >>124 バインディング済みだけど、中身かなり古いよ… Windows版ってそれなりに需要あるのかな…?
126 名前:nobodyさん mailto:sage [2007/04/04(水) 09:37:01 ID:???] ちゅっと試したい人にはありだと思うWindows版
127 名前:nobodyさん mailto:sage [2007/04/07(土) 12:04:03 ID:???] Sennaを使ったWikipedia検索のデモ wikipedia.suenaga.name/
128 名前:nobodyさん mailto:sage [2007/04/12(木) 07:33:27 ID:???] 素人考えで申し訳ないんだけど、ストレージを持たないことと、更新に古い値が必要なことって直接関係あるの? sen_index_upd()でold_valueを、sen_index_update()でold_valuesを指定せずにすむだけで使い勝手が良くなると思う。
129 名前:nobodyさん mailto:sage [2007/04/12(木) 08:25:53 ID:???] >>128 Sennaのインデックスは転置インデックスという構造で、 単語1: 文書ID1, 文書ID2 単語2: 文書ID1, 文書ID3 という風に、単語ごとにその単語を含む文書IDのリストを持っている。 ある文書IDだけを削除する場合、 元の文書の内容がなくても、 上記のリスト中すべての単語について 指定の文書IDがあるかどうかをチェックして削除できる。 でも激遅い。実用にならない。 以下のようなリストを別途持っておけば、 削除が必要な単語についてのみ削除処理を走らせればよい。 文書ID1: 単語1, 単語2 文書ID2: 単語1 文書ID3: 単語2 このようなリストを削除時に手に入れる方法は ・上記のリストを別途インデックスとして作っておく ・元の文書を保存しておく ・元の文書を削除時に渡す(現在のSenna方式) の3つくらいある。 というわけで間接的だが結構影響あるぞ、ストレージ。
130 名前:nobodyさん mailto:sage [2007/04/12(木) 08:51:29 ID:???] >>129 なるほど。削除を効率良く行うために元の文書が必要なんですね。 Sennaの場合は元の文書は別に保存されているはずで、重複して保存するのは ディスクの無駄であるという思想でストレージを持たない、ということで合ってます?
131 名前:nobodyさん mailto:sage [2007/04/12(木) 14:28:40 ID:???] >>130 思想としてはたぶんそうだと思います。 Sennaページの開発ロードマップによると、 qwik.jp/senna/Roadmap.html ストレージ機能が付いたバージョンが今月出るみたい。 たぶん、ストレージ機能が付くということは、 古い文書の内容を与えなくてもインデックスの削除や更新が できるようになるんじゃないかな。 MySQLバインディングなんかでは必要のない機能だけど、 単体で利用する場合にはかなり便利になるんじゃない?
132 名前:nobodyさん mailto:sage [2007/05/12(土) 13:09:30 ID:???] tritonn てのは mysql 本家がversion 更新したら 即更新パッチ出す。。。までは行かないの?
133 名前:nobodyさん mailto:sage [2007/05/22(火) 23:05:48 ID:???] MySQL 5.0.41 対応出た茄子。
134 名前:nobodyさん mailto:sage [2007/05/30(水) 15:10:50 ID:???] サポートサービスが出た。 www.scs.co.jp/mysql/topics070530.html
135 名前:nobodyさん mailto:sage [2007/06/09(土) 05:34:06 ID:???] "世界初、オープンソースの高速日本語 全文検索エンジンである「Senna」を 「MySQL Enterprise Server」に組み込んだ バイナリに対し、正式に技術サポートを提供" この「世界初」、どこにかかるのか分からん 書き方が、うざ素敵。
136 名前:nobodyさん [2007/08/03(金) 20:15:52 ID:czE9BLpg] sennaを使っていて、 「ずっと死なないhttpdプロセス」が出来ることはありませんか? ロードアベレージが恐ろしい数になっていたので見ると、 ずっと前に生まれたhttpdプロセスがたくさん居座っていました。 apache本体を落としても、それらのプロセスは何故か生きていて、 ゾンビにはなっていません もっとも何が原因なのかは分かっていません。 普段入れていないものといえばeacceleratorとsennaくらいなので、 そのどちらかが原因じゃないか…と
137 名前:nobodyさん [2007/08/08(水) 21:56:38 ID:nQBYWZPX] fulltext indexを再構築する際、 *.SEN,*.SEN.i,*.SEN.i.cファイルは 前もって削除しておいた方がいいですか? fulltext indexをdrop→create index あるいはmyisamchkでインデックスの再構築をする時に、 これらのファイルも勝手に削除や更新をやってくれるのでしょうか?
138 名前:137 mailto:sage [2007/08/08(水) 22:09:15 ID:???] dropしたらSEN系ファイルも削除されました つまらない質問してスミマセン
139 名前:nobodyさん mailto:sage [2007/08/08(水) 22:15:17 ID:???] インデックスの作成ってコストが高そうだけど SENファイル作るのほとんど一瞬ですね suge-
140 名前:nobodyさん mailto:sage [2007/08/10(金) 04:03:10 ID:???] ブラジル版のMySQLバインディングでは、 ALTER TABLE/CREATE INDEX/DROP INDEXなどを発行すると、既存のフルテキストインデックスに付与された正規化フラグやN-gramフラグが消失してしまうという問題がありました。 よって、複数のN-gramインデックスを作成する場合には、 ALTER TABLE table ADD FULLTEXT index_name_title USING NGRAM (title), ADD FULLTEXT index_name_body USING NGRAM (body); のように、1つのクエリで複数のインデックスを作成しなければなりませんでした。 ---- これって前からこんな仕様だったっけ? 全然気にせずインデックス張ってたよ・・・
141 名前:nobodyさん mailto:sage [2007/09/05(水) 01:05:47 ID:???] >>140 GREEのパッチが入った段階でそんな仕様になった。
142 名前:nobodyさん mailto:sage [2007/09/21(金) 01:32:45 ID:???] 自分のサイトに置くつもりで、 Sennaのサイト内検索のCGIをPerlで作ってるんだが・・・ 一般公開すると仮定した場合、需要はあるだろうか?
143 名前:142 mailto:sage [2007/09/21(金) 01:34:54 ID:???] 「一般公開」っていうのは、CGIの配布のことです。
144 名前:nobodyさん mailto:sage [2007/09/21(金) 07:57:44 ID:???] >>143 需要はあると思う。 GPL(LGPL?)で公開するのキボン(って、Mustなのかな?)
145 名前:nobodyさん mailto:sage [2007/09/21(金) 16:53:44 ID:???] >>144 一応、現在では、公開するとなればGNU GPLライセンスで公開するつもり・・・。 公開できるところまで進むかが問題だが。 現在、インデックス作成の部分は、HTMLなどなどのファイルからテキストだけを 抜く処理を書けばほぼ完成。File::Extractモジュールとか使えばいいのかな・・・? 検索処理の部分は、スキンファイルっぽい処理を書いて スニペットの処理を書けばほぼ終わり・・・。 ・・・だと思うよ。
146 名前:nobodyさん [2007/09/21(金) 23:24:20 ID:UjaDTaQF] 期待age
147 名前:nobodyさん mailto:sage [2007/09/22(土) 00:06:35 ID:???] >>146 d SennaのPerlバインディングの資料が少なくて俺涙目www Tie::Sennaなんかサンプルスクリプトすらエラーを起こす。 しょうがないのでモジュールのソースを見ながら作る。 一応・・・動くんだけど、どうして動くのか判らない、そんなものができつつあります。
148 名前:nobodyさん mailto:sage [2007/09/22(土) 00:15:37 ID:???] >>147 > 一応・・・動くんだけど、どうして動くのか判らない、そんなものができつつあります。 そういうふうにReadmeに書いておけば、自然と情報が集まってくる希ガス
149 名前:nobodyさん mailto:sage [2007/09/22(土) 17:04:39 ID:???] 「max_exprsに、検索クエリに指定する式の最大値を指定します。」 ってどういうこと?「検索クエリの式」は判るけど、「式の値」って何?
150 名前:nobodyさん [2007/09/22(土) 17:33:09 ID:TclPXa4o] ググって出てきた www.koders.com/python/fid8CE7DA8C27987E7393CB41EAD4B402A2741A5C1F.aspx?s=max_exprs を見ると「検索式の最大の数」だそうだが・・・。 じゃぁ、「*D+ nana」でPerlのSenna::Index->query_execを経由してsen_query_execで検索するときに、 0だと検索に失敗し、他の数字(試した数字の例:1,2,3,10,32,50)を指定して検索すると「セグメンテーション違反です」と 怒られるのはどうして? 文字コードの問題と切り分けるべく英数字で検索しても失敗する。何故?
151 名前:nobodyさん [2007/09/23(日) 16:01:45 ID:Mbqn4OVO] >>149-150 の問題があるけど 大体できたから 一応アップしてみた。 人柱版ということでよろしく。動作保証ナシ。でも俺の環境では動いた。 takatyan.info/sss/Senna_Site_Search-0.01.zip スクリプトなどのファイルは全部UTF8でエンコードしていますから 対応エディタをお使いください・・・。
152 名前:nobodyさん mailto:sage [2007/09/23(日) 23:48:13 ID:???] >>150 の件について、 Senna::IndexのupdateメソッドにSenna::Values型のデータを渡して インデックス作ってみたけどやっぱりダメですね・・・。
153 名前:nobodyさん mailto:sage [2007/09/24(月) 23:36:00 ID:???] >>151 試してみた。 なんかやたらモジュール要求されるな。 Senna の他にこんだけ追加モジュール要求された。 File::Extract Class::Data::Inheritable File::MMagic::XS Spreadsheet::ParseExcel OLE::Storage_Lite MP3::Info CAM::PDF RTF::Lexer 俺の環境が Perl 5.8.0 と古いせいもあるかもしれんが… で、なんとか mksss.pl 起動までこぎつけたが 新規 1778個 更新 0個 削除 0個 と出た後 Can't call method "mime_type" on an undefined value at mksss.pl line 156. でこける… 直前の $e->extract($key); が undef を返してるようなんだが…
154 名前:nobodyさん mailto:sage [2007/09/25(火) 00:35:24 ID:???] >>153 >>151 を作ったものです。 モジュールが大量に要る件についてはすみません・・・。俺自身も大量にインスコしました・・・。 えっとですね・・・それらはほとんどFile::Extractが必要とするものです。 File::Extractは、HTMLからテキストだけを抜き出すのに使ってます。 新規1778個っていうのはファイル数ですけど、そのくらいありますか? そういえば・・・画像ファイルとかを除外する処理をしていませんね。 ですから画像ファイルをインデックスしようとして失敗しているのかも。 $e->extract($key)がundefを返したらスキップするのがいいかもしれません。 そもそもHTMLファイルだけの環境でしかテストしてませんでした・・・ $e->extract($key)がundefを返したらスキップするには、 $e->extract($key) を $e->extract($key) || return; に直すといいかもしれません。 明日にでも画像ファイルなどが混在した状況でテストしなおしてみます・・・。
155 名前:153 mailto:sage [2007/09/25(火) 00:47:13 ID:???] >>154 ども。 検索対象にしようとしたのは某 2ch 過去ログサイトで、 新規1778個っていうのはほとんど 2ch の過去ログです。 とはいえ関係ない種類のファイルも若干混じっているので 試しに明らかに HTML しか含んでいないディレクトリ指定してやってみても 新規 67個 更新 0個 削除 0個 Can't call method "mime_type" on an undefined value at mksss.pl line 156. てな感じでした… この67個は全部 DAT2HTML で HTML 化した 2ch の過去ログです。 漏れももう少し探ってみます…
156 名前:nobodyさん mailto:sage [2007/09/25(火) 00:54:55 ID:???] >>155 mksss.plの89〜92行目ぐらいの &update($index,$constants_code{$index->encoding()},\%StorageDB,\%ModifiedDB,\%TitleDB,$_); と print "新規: $i / @{[$#new + 1]} $_ \n"; を入れ替えて実行すると、どのファイルが問題なのか判るかと思います。
157 名前:153 mailto:sage [2007/09/25(火) 01:29:01 ID:???] >>156 thx. 試してみたけど1個目の HTML でいきなりこけてた…
158 名前:153 mailto:sage [2007/09/25(火) 02:01:50 ID:???] あーうちの環境依存の問題かな… どんな HTML 食わせても File::Extract が undef 返すっぽいわ…
159 名前:153 mailto:sage [2007/09/25(火) 13:05:25 ID:???] Perl 5.8.0 環境で動かすのは諦めておとなしく Perl 5.8.8 で動かすことにしたらすんなり先に進んだよ。 で、やたら文字化けするから変だと思ったら、 $main::IndexConvert を 1 に変えておかないとダメなのね。 それでもやっぱりスニペットが文字化けしまくるし その関係か日本語でほとんどヒットしない。 で、さらに調べたところ、 File::Extract::Result->text() は 元の HTML の文字コードにかかわらず UTF-8 バイト列を返すっぽい (たまに UTF-8 文字列を返すこともある) ので、 164行目の Encode::from_to($buf,$guess, $encoding) if($main::IndexConvert); は Encode::from_to($buf, 'utf8', $encoding) if($main::IndexConvert); にしないとダメぽ。 ほか俺が使う時にデフォルト設定から変えた部分↓ $main::Indexcode = SEN_ENC_EUCJP; (MeCab に合わせて) $main::Indexflags = SEN_INDEX_NORMALIZE; (正規化する、N-gram 使わない) @main::GuessCode = qw/cp932 euc-jp utf8 7bit-jis/; (shiftjis より cp932 の方が無難かな) $main::SkinDir = 'skinfiles/'; (パッケージ展開した直後の状態に合わせて) で、文字化け問題は大方解決したんだが、 多数ヒットするキーワードで検索すると Out of Memory というエラーメッセージが出て結果が出ないことがある。 それから Readme にも書いてあるけど TITLE とか H1, H2 とか A とかに重み付けしたスコアリングは欲しいね。
160 名前:nobodyさん mailto:sage [2007/09/25(火) 18:02:17 ID:???] >>157-159 これはこれはありがとうございます。 File::Extractはコントラクタにオプションを渡すと文字コードの変換をやってくれるらしいので、 それに任せることにして、mksss.pl自体での本文の変換はしないことにします・・・。 重み付けをやるには、前述のSenna::Valuesクラスを使ってのインデックス化と検索ができれば Senna側としては可能です。 あとは、そのためのHTMLを解釈する部分が作れればよいのですが・・・。 File::Extractじゃ無理っぽいね。自前で書くしかないかなぁ。
161 名前:nobodyさん [2007/09/30(日) 22:59:18 ID:7soZ8WBh] Senna 1.0.9 age
162 名前:nobodyさん mailto:sage [2007/10/02(火) 22:03:25 ID:???] >>149 遅レスだけど、max_exprsはクエリで列挙できるキーワードの数の最大値ってことだよ。例えば、 "+ああん -いやん +ばかん -うふん" だと4つのキーワードがそれぞれの演算子と共に評価されるけど、max_exprsを超える数については無視される。 Tritonnだとmax_exprs=32固定なので、一度に指定できるのは32個までという仕様になってる。
163 名前:nobodyさん mailto:sage [2007/10/20(土) 03:01:54 ID:???] sennaのインストールや使用方法がウンコするくらい簡単になったら お金出してでも導入する。 今のように難しくて面倒くさいうちは、LIKE%%検索で乗り切る。
164 名前:nobodyさん mailto:sage [2007/10/21(日) 09:18:15 ID:???] likeで乗り切れるくらいならsennaいらないだろう 全文検索入れるか、まったく入れないかの選択になる ってか、mysqlのバージョンが進めば、標準でマルチバイトの全文検索に対応するかな?
165 名前:nobodyさん mailto:sage [2007/10/21(日) 20:02:03 ID:???] ところで Senna っていうと MySQL で使う話ばっかり出てくる気がするんだが Ludia 使ってる香具師おらんの?
166 名前:nobodyさん mailto:sage [2007/11/14(水) 10:26:02 ID:???] トリdってRPMで入れられるんだね 大分前にソースからパッチ当てて入れた時にはかなり大変だったけど ありがたいねえdd
167 名前:nobodyさん [2007/11/22(木) 13:00:07 ID:t/zyhRCZ] RPMのトリトン入れました 辞書をEUC-JPとして再構成したいのですが /usr/libexec/mecab/mecab-dict-index -d /usr/lib/mecab/dic/ipadic/ -f utf-8 -o /usr/lib/mecab/dic/ipadic1/ -c euc-jp とすると /usr/lib/mecab/dic/ipadic/char.def is not found. minimum setting is used /usr/lib/mecab/dic/ipadic/unk.def is not found. minimum setting is used. /usr/lib/mecab/dic/ipadic/unk.def is not found. minimum setting is used. reading /usr/lib/mecab/dic/ipadic/unk.def ... 2 emitting double-array: 100% |###########################################| dictionary_compiler.cpp(117) [dic.size()] no dictionaries are specified と言われてしまいます。 ipadic1の中を見ると char.bin unk.dic だけしかありません。 どうすればうまく辞書の再構成ができますか?
168 名前:nobodyさん mailto:sage [2007/11/23(金) 12:42:00 ID:???] >>164 そうだよそうだよソースだよ! MySQLが標準で日本語の全文検索に対応してくれりゃいいんだよね。 どこかの会社が全文検索を初めから使えるようにしたバージョン発売しないかな。
169 名前: ◆e5sgKA2q7. [2007/12/02(日) 20:38:21 ID:h6hdy91g] >>168 住商情報システムが売ってるんじゃないの?
170 名前:nobodyさん mailto:sage [2007/12/02(日) 21:19:21 ID:???] >>151 をなんとかこしらえた者ですが・・・ 試行錯誤の果て、Perlバインディングによる実現は挫折しました。 結局私はMySQLバインディング Tritonnに逃げました。 というか・・・ >>151 はインデックスの更新のために文書データを丸ごとBerkeleyDBに保存しておくので 実は、MySQLなりでDB作って検索するのと本質的に変わらないということに気付きました。 そんなわけでMySQL+tritonnでやるのなら、マトモに動くのが書けそうです・・・な。
171 名前:nobodyさん mailto:age [2008/01/25(金) 12:13:30 ID:???] Sunに買収されたことだし、ネイティブで日本語全文検索に対応してほしいね。 もちろん無償バージョンでも。
172 名前:nobodyさん mailto:sage [2008/02/08(金) 17:53:36 ID:???] Perlバインディングがぜんぜん動かないので 買ったはいいがPerlから乗り換える気も起きずしまいこんでいた、Rubyの入門書を 引っ張り出してきてRubyバインディングを触ってみたらこれが 簡単に動く。 あのPerlバインディングどうなってるの・・・。
173 名前:nobodyさん mailto:sage [2008/02/11(月) 19:36:36 ID:???] >>172 ファイトー。
174 名前:nobodyさん [2008/03/03(月) 04:05:35 ID:KobAduJV] tritonnにmysql_configって入ってないですか? phpでmysqliを使えるようにするために必要みたいなのですが・・・
175 名前:nobodyさん mailto:sage [2008/03/03(月) 17:40:25 ID:???] tarボールの中に入ってたのでコピーしたらできました
176 名前:nobodyさん mailto:sage [2008/03/04(火) 01:26:37 ID:???] >>175 それはまずいんじゃ…? mysql_config って私の認識では MySQL のインストール情報を 記録しておく (いつでも表示できるような) ミニアプリなので、 手順を踏んでインストールしないと意味がないもののような気がする。 パッケージ管理システムを採用しているような Linux ディストリビューションなら、 mysql-devel とか mysql-dev みたいな名前のパッケージを導入するのがいいのではないかな。
177 名前:nobodyさん mailto:sage [2008/03/04(火) 01:43:21 ID:???] >>178 確かに妙な感じになったので RPM版をすべてアンインストールしてtarball版を使うことにしました
178 名前:nobodyさん mailto:sage [2008/03/04(火) 18:06:39 ID:???] たしかmysql-dev相当のがなんかしらんけどインストールされなかったよね -configもそのひとつだったとおもう specを調整しないといけなかったような
179 名前:nobodyさん mailto:sage [2008/03/26(水) 23:50:01 ID:???] 2chのスレのdatファイルをgz圧縮して格納しているんだが、 これをSennaで検索できるようにしたい。 インデックスを作るだけなら単に解凍してインデックスすればいいから いいけど、 問題はスニペット。 検索結果を20件ずつ分けて表示するとしても、 検索結果を表示するたびに20個のgz圧縮datを解凍して スニペットを作るというのは解凍が無駄なような気がする。 どうしたものか・・・。 スニペットを消すというのも手と言えば手だが思考停止に他ならないような気がする。 そうすると、解凍したdatをキャッシュするとかですかね・・・。 ちなみに現在の格納数は2818個です。 この2818個が196052KB(圧縮したサイズ)、 今後70GB程度まで格納を続けるつもりです。 196052KBの70GBに占める割合は0.2%ぐらいです。
180 名前:nobodyさん mailto:sage [2008/03/28(金) 23:39:28 ID:???] 解凍したものをポスグレとかMySQLに突っ込むのはダメなの? ポスグレの場合は、大きいレコードは勝手に圧縮されるはずだから、 容量もあまり食わないし、キャッシュとかもしてくれると思う。 MySQLもそうなんじゃない?知らないけど。
181 名前:nobodyさん mailto:sage [2008/03/30(日) 23:18:18 ID:???] >>180 レスありがとうございます。 データベースですか・・・ 一応MySQLを使っていますがまだ勉強途中で圧縮されるかどうかは知らないです。 解凍したものをキャッシュするとすればそれが最適ですかね・・・ 判りました、ありがとうございました。
182 名前:nobodyさん mailto:sage [2008/03/31(月) 03:05:19 ID:???] MySQLは自動圧縮はないと思う。
183 名前:nobodyさん [2008/04/07(月) 18:43:10 ID:ubFKDoY/] トリトンのipadicのdicrcで config-charset = EUC-JP ってなってるんですが、これ間違いですか? トリトンに組み込んでる辞書はUTF-8にしてるはずですよね? EUC-JPへの辞書コンバートがどうもうまくいかず 調べているうちに見つけました これが原因なのかどうかはまだ分かりませんが
184 名前:nobodyさん mailto:sage [2008/04/07(月) 23:43:42 ID:???] dirrcで設定したら正しくコンバートできました コンバートしてもdirrcは書き換わらないので そのままになってるみたいですね
185 名前:nobodyさん mailto:sage [2008/08/08(金) 01:06:56 ID:???] sage
186 名前:nobodyさん [2008/09/02(火) 03:21:09 ID:CDQGh37S] >>111-112 の SEN_INDEX_SPLIT_ALPHA とかを有効にしたいんだけど ソースからいれないと駄目なのかな? TritonnのLinux x86(non RPM packages)を使っています
187 名前:nobodyさん mailto:sage [2008/09/11(木) 01:53:00 ID:???] >>186 バイナリ配布のものでもいけるはずですよー。
188 名前:730=732 mailto:sage [2008/09/12(金) 16:44:25 ID:???] pc11.2ch.net/test/read.cgi/php/1183501450/ から誘導されてきました。 ■環境 CentOS release 5.2 (Final) + Apache/2.2.3 + PHP 5.1.6 + Mediawiki v1.13.1 + Tritonn組み込みMySQL(qwik.jp/tritonn/ ) on MW ware version 5.0.0 (メモリ256MB) Tritonn組み込みMySQL = mecab + tritonn + senna +MySQL ■問題 Mediawikiの検索窓から、例えば検索キー「を膜上に」で検索すると、msqldが潰れます。 傾向としては、助詞を前に付けて検索を行うと、検索が終わらなくなるようです(例外はあった)。 ×:「を膜上に」「と化学物質の」「と化学物質」「に毛細血管」 ○:「を膜上」「膜上に」「化学物質」「化学物質の」「毛細血管」「毛細血管の」 同じようなトラブルにあった方いませんか?対応はどうしました? ■Backtrace シェル上にはBacktraceが延々と *** glibc detected *** /usr/sbin/mysqld: double free or corruption (out): 0x091c1018 *** ======= Backtrace: ========= /lib/libc.so.6[0x6a9b16] /lib/libc.so.6(cfree+0x90)[0x6ad070] /usr/lib/libsenna.so.0(sen_free+0x1d)[0x236409] 以下略 ■mysqlの遺言。最後に投げたクエリー SELECT /* Medicine */ page_id, page_namespace, page_title FROM `medntpage`,`medntsearchindex` WHERE page_id=si_page AND MATCH(si_title) AGAINST('+ U8e381ab U8e6af9bU8e7b4b0U8e8a180U8e7aea1 ' IN BOOLEAN MODE) AND page_is_redirect=0 AND page_namespace IN (0) LIMIT 20 ↑あわわ「medntsearchindex」か
189 名前:730=732 mailto:sage [2008/09/12(金) 16:51:46 ID:???] 誤:MW ware ↓ 正:VMware workstation version 5.0.0
190 名前:nobodyさん mailto:sage [2008/09/12(金) 17:56:34 ID:???] 潰れるってナニ? コア吐いてプロセスが死んじゃうの?
191 名前:nobodyさん mailto:sage [2008/09/12(金) 23:54:54 ID:???] ps -eFしてみると/usr/sbin/mysqld は残っているんだけど、サーバ越しには反応しない。 /sbin/service mysql restart とか打つと、延々反応無し。 kill -9 して再起動させないと駄目。 止まっちゃうような検索キー「と化学物質」を投げた直後にシェルには、これコアダンプって言うんでしょうか? メモリダンプしてるから多分そうなんでしょうね。 他の環境で再現されなければ、インストール方法とか環境の問題で片付けるしかなさそう。 ちなみにMediawikiにぶち込んだデータは3万件です。 どなたか、ヒントを頂ければ幸いです。とりあえず、環境を変えて再現性を取る予定。 *** glibc detected *** /usr/sbin/mysqld: double free or corruption (out): 0x091c1018 *** ======= Backtrace: ========= /lib/libc.so.6[0x6a9b16] /lib/libc.so.6(cfree+0x90)[0x6ad070] /usr/lib/libsenna.so.0(sen_free+0x1d)[0x236409] ・・・略 ======= Memory map: ======== 00110000-00263000 r-xp 00000000 fd:00 565891 /usr/lib/libsenna.so.0.0.0 00263000-00264000 rwxp 00153000 fd:00 565891 /usr/lib/libsenna.so.0.0.0 0037d000-00388000 r-xp 00000000 fd:00 720898 /lib/libgcc_s-4.1.2-20080102.so.1 ・・・略・・・ b7569000-b756a000 ---p b7569000 00:00 0 b756a000-b7f6e000 rw-p b756a000 00:00 0 bfe4b000-bfe61000 rw-p bfe4b000 00:00 0 [stack] っっっっ
192 名前:nobodyさん mailto:sage [2008/09/15(月) 01:47:00 ID:???] VMWare上でCentOS5.2を入れてやってみたんだけど、確かにインストールうまくいかない。init scriptが問題ある。 さらに、phpで使うときにどこで詰まるかも↓これ読んでちょっと分かった。 www.akiyan.com/blog/archives/2008/09/tritonnmysqlsen.html Tritonnの開発者の人に、CentOSですんなりインストールできないです、 と報告を上げておいたので、状況が改善するまでお待ちあれー。
193 名前:nobodyさん [2008/10/11(土) 15:33:19 ID:???] Tritonn 1.0.9使用 INSERTとかUPDATEしようとすると反応しなくなっちゃう現象発生。 /etc/init.d/mysql restartでリスタートしようとしても反応なしでkill -9しないとダメ。 再起動したあともINSERTとUPDATEしようとすると無反応。 ぐぐったらSennaで2007年にデッドロックの問題があって修正されてるみたいだけど Tritonnに反映されてるの? lists.sourceforge.jp/mailman/archives/senna-dev/2007-September/000673.html
194 名前:nobodyさん mailto:sage [2008/10/11(土) 17:14:10 ID:???] >>193 インデックスのロックかかってるみたいね。 mysqldを落としてmyisamchk -rをすれば直るはず。 稼動中のデッドロックの問題は反映されてるけど、 途中でお亡くなりになった場合にはロックがかかりっぱになることがある。