[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 10/02 11:47 / Filesize : 60 KB / Number-of Response : 195
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

組み込み型全文検索エンジンSenna



1 名前:うんこ船長 [2005/06/15(水) 00:14:13 ID:nYzPplAZ]
ないようなので立ててみました。

dev.razil.jp/project/senna/

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に、検索クエリに指定する式の最大値を指定します。」
ってどういうこと?「検索クエリの式」は判るけど、「式の値」って何?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<60KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef