組み込み型全文検索エンジンSenna
■ このスレッドは過去ログ倉庫に格納されています
0001うんこ船長
2005/06/15(水) 00:14:13ID:nYzPplAZhttp://dev.razil.jp/project/senna/
0002うんこ船長
2005/06/15(水) 00:15:27ID:nYzPplAZNamazu全文検索システム
http://pc8.2ch.net/test/read.cgi/php/992477868/
0003nobodyさん
2005/06/15(水) 00:16:17ID:nYzPplAZ誰か教えてくれ!
0004うんち船長
2005/06/15(水) 00:22:15ID:nYzPplAZhttp://qwik.jp/senna/8.html
0005nobodyさん
2005/06/15(水) 05:04:00ID:I3ZAfTjX今のところRubyのみ?
0006nobodyさん
2005/06/15(水) 07:36:18ID:???はてなで使ってるのはそれか、さらにカスタムしてるかも。
すごい使い勝手はよさそうなんで、PHPとPostgreSQLのバインディングもよろしく。<ブラジルの中の人
いざとなれば、他のPECLの見様見まねで自分でPHPバインディングつくるかも。
0007nobodyさん
2005/06/15(水) 13:39:14ID:???php-dev であったよ。それで Rast のモジュールもお蔵入りになり、
namazu も pecl から撤退した。
0008nobodyさん
2005/06/15(水) 15:22:53ID:???自分でコソーリ作ってコソーリ使うか。
Namazuは将来libnmzをLGPLにするという話があるみたいだけど
分かち書きインデックスの精度に限界を感じてるので、それでPECL復帰しても使うかは微妙。
RastかSennaがいいなあ。
しかしEstraierも含め国産全文検索エンジンは何で揃いも揃ってGPLなんだろ。
コアがLGPL/BSDLで、フロントエンドの実装がGPLなら、ぐっと使いやすくなるのに。
# Namazuを引き合いに出すけど、わざわざLGPL版を書き起こさなくてもソースコードの著作権者が
# 「LGPLにライセンス変更です」って宣言すればいいだけと思う。
0009nobodyさん
2005/06/15(水) 16:32:48ID:???フロントエンドな訳だけどね。
モジュールが書ける腕なら同等機能を作るのは問題ないはず。ソース見てみ。
Rast も XMLRPC 経由で使えばライセンス問題は起きないから、
仕様が公開されれば php からも使えるでしょ。
あと、Estraier の次バージョンの HyperEstraier はライブラリ形式で LGPL。
著作権者って送ったパッチが取り込まれた奴全員だよ?
一人でもヤダっていったらダメな訳だし、そもそも連絡取れないとおもう。
0010nobodyさん
2005/06/18(土) 17:36:37ID:???http://www.kiteya.net/script/msearch/
0011nobodyさん
2005/07/03(日) 21:05:39ID:???まだ見てるかな。
Rast がライセンス変更になったよ。BSDライクな奴だってさ。
そんで、phpモジュールも公開再開だって。
個人的には、そろそろ公開されそうなHyperEstraierのノードAPIに
期待してるわけですが。
0012nobodyさん
2005/07/06(水) 14:14:43ID:???0013nobodyさん
2005/07/07(木) 14:39:25ID:???まぁべつのBDBなりなんなりに入れろということか。
文書管理の面からすると、RastとかHyperEstraierに比べてそのへんが面倒?
逆に文書管理に縛られずに自由にいろんなアプリに組み込めるのがいいところなのかな。
0014nobodyさん
2005/12/08(木) 05:44:00ID:???お試しで軽く触ろうという意欲が無くなるな。
sennaにしか効果ないパッチじゃなく、MeCab全体に役立つパッチとして
MeCab公式に取り込んでもらいたいところだな。
0015nobodyさん
2005/12/18(日) 21:36:06ID:RgxCfVuV0016nobodyさん
2006/02/15(水) 19:47:18ID:ZxB9YIqX0017nobodyさん
2006/02/16(木) 17:00:42ID:i7JO7WUsMeCab0.9で取り込まれたっぽいからpatchはもういらないぽ
0018nobodyさん
2006/06/21(水) 02:12:06ID:I+o61wNkひろゆきの投稿発見した
http://lists.sourceforge.jp/mailman/archives/senna-dev/2005-October/000140.html
ひろゆきって自分で鯖いじったりもしてたのね
0019nobodyさん
2006/06/22(木) 01:32:26ID:???http://qwik.jp/senna/publication.html
0020nobodyさん
2006/06/22(木) 15:24:11ID:+CxY78Dt「skipmode-patchについてはここでは触れません。」
って書いてるけど、
どこで触れてるの?
0021nobodyさん
2006/06/22(木) 17:28:13ID:???発見した。
「limitで指定されたoffsetまで冗長なIOを抑止する」んだね。
で、2ndパッチを当てたら特にはいらないと。
0022nobodyさん
2006/06/22(木) 21:44:13ID:???普通に便利だと思うんだが…
0023nobodyさん
2006/06/23(金) 15:51:45ID:???使用する機会が少ないから。
ホームページならGoogleでいいし、blogなどの検索機能でも十分だし。
それ以外ではSQLのlike検索で十分なパフォーマンスになる程度の量しかない。
0024nobodyさん
2006/07/30(日) 14:02:34ID:zmnCWUN9MySQLを使用したものしか製作したことがないので…
0025nobodyさん
2006/07/30(日) 20:10:49ID:???PHP bindingを使う、
http://qwik.jp/senna/PHP_binding.html
のだが、PHPバインディングの開発は止まっているみたい。
0026nobodyさん
2006/08/01(火) 13:27:49ID:???これって24さんかな?
http://xoopscube.jp/modules/xhnewbb/viewtopic.php?topic_id=3443&post_id=14886
0027nobodyさん
2006/08/03(木) 22:25:33ID:???Mysqlの全文検索がUTF8対応だからじゃないかな
N文字でも分かち書きでもいいけどとにかく適当に分割してやれば日本語でも検索できる
じゃあSennaって?ていう感じじゃないだろうか
0028nobodyさん
2006/08/19(土) 12:09:09ID:???0029nobodyさん
2006/11/01(水) 16:19:47ID:???0030nobodyさん
2006/11/01(水) 19:41:42ID:???0031nobodyさん
2006/11/02(木) 19:03:56ID:???>382 名前:nobodyさん sage 投稿日:2006/10/05(木) 14:59:05 ID:???
>MySQLならMeCabとかで分かち書きして、UTF-8でFULLTEXTに放り込む手もある。
こんな事を書いてたら某所で取り上げられてて驚いた。(適当に要約し引用)
>MySQL&PostgreSQLの全文検索は転置インデックスだが、Sennaは完全転置インデックスを採用している。
>完全転置インデックスの採用によって、Sennaはフレーズ検索する事ができる。
>>27
フレーズ検索に対応ってのは結構大きなポイントだねぇ
0033nobodyさん
2006/11/02(木) 21:58:41ID:???0034nobodyさん
2007/02/23(金) 18:48:38ID:YFrEMN+P少し前の使ってるけど
入れ直した方がいいのかな?
0036nobodyさん
2007/02/24(土) 21:56:13ID:5ktSNz/w入れなおして、インデックスを作りなおすといいかも。
安定性が増している・・・はず・・・
0037nobodyさん
2007/02/28(水) 00:12:15ID:???この前、ぐにゃらくんが PHP extensionの書き方勉強してるっていうんで
期待してたのだけれども。
0039nobodyさん
2007/02/28(水) 02:27:09ID:???PHPバインディングってどういう用途で使うの?
0040nobodyさん
2007/02/28(水) 03:35:07ID:???んだ。特に今のSennaはストレージを持っていないから、
ドキュメントの更新は古いドキュメントの内容を渡さないといけない。
となると、実用的なアプリを書くとなると、
やはりBDBとかsqliteに別途ドキュメント情報を持っておく必要があると思うんだけどなあ・・・
0041nobodyさん
2007/03/01(木) 02:30:02ID:URZ8Y8TXというわけで、作り方だけ公開してみた。
地味にAPIを増やしていく予定。
0042nobodyさん
2007/03/02(金) 00:18:50ID:???例えばsennaのファイルをどっかに置いて、ちょこっと設定ファイルをいじるだけでOK、とか。
それも現在のシステム構成に影響出さずに導入できるなら・・・
それならお金出してでも導入したい。
3万までなら出す。
0043nobodyさん
2007/03/02(金) 02:08:02ID:???0044nobodyさん
2007/03/02(金) 02:20:15ID:???別にたいした規模のソフトじゃないし。
0047nobodyさん
2007/03/03(土) 01:39:49ID:???元からそういうものなんだから
0049nobodyさん
2007/03/03(土) 09:52:29ID:???MySQLのリビルドが必要だから超簡単とは言いづらい.
dump→リビルド→データ流し込むの作業が簡単かどうか.
LudiaはPostgreSQLのリビルドの必要なく組み込めるらしい.
>>49
NTTデータ社員乙
0050nobodyさん
2007/03/03(土) 16:33:11ID:???>dump→リビルド→データ流し込むの作業が簡単かどうか
どっちって言うと、超難しい&めんどくさい。
dumpと流し込みはいいとして、リビルドってのが激しくイヤだ。
絶対に何かトラブルが発生するのが目に見えている。
0053nobodyさん
2007/03/03(土) 21:49:06ID:???ドキュメントは MySQL にもってるけど、Senna を MySQL に組み込むのはちょっと嫌というケースかな。
PHP バインディングで MySQL 上の ID とからめてインデックスを作っておいて、検索→ドキュメントは MySQL から引っ張り直す、みたいな。
しかし、PHP の検索部分を mod_php とかで動かすと、インデックスの読み込みで httpd のプロセスが肥大化したりしないのだろうか。
あと、ロードのオーバーヘッドとかも気になる。
そういう点では、PHPバインディングに実用性あるのかは俺も聞きたい。
0054nobodyさん
2007/03/04(日) 13:44:29ID:???なるほどね…疎結合でいいならそういう用途もあるなあ。
プロセス肥大化については、
インデックスファイルはmmapで読み込まれるので
まあ大丈夫だとは思います。
ロードのオーバヘッドはある程度はあるかなあ。
mod_phpにもなんらかの形でインスタンスを保持しておく方法があると思うので、
それを利用すればイケるんじゃないかな…(適当)
005553
2007/03/05(月) 15:14:34ID:???例えば mod_php を動かしている httpd のプロセスが複数動いているとして、インデックスをロードする領域は共有されてるって事ですか?
005753
2007/03/06(火) 01:23:12ID:???0058nobodyさん
2007/03/09(金) 23:18:18ID:KVrCgq4L0059nobodyさん
2007/03/09(金) 23:19:26ID:KVrCgq4L0060nobodyさん
2007/03/10(土) 06:36:26ID:e0KlCCjBそれがホームページ制作王である。ホームページ制作王に不可能はない!
標準外のイカサマ商品の売買で生計を立てるインチキ企業工作員が、
本当は血縁でもセレブでもなんでもない「叶姉妹」や、データを捏造した社員は
月曜朝に株で大儲けしている「あるある大辞典」にコロっと騙される日本人の気質を科学的に分析し、
ホームページ制作王を使ったことのない者や、使いこなせなかった者を煽動し、
彼らに八つ当たりのデタラメな風評をデッチ上げさせたために、我が国はホームページ制作王の
標準化に失敗し、21世紀も7年目に入った今、我が国のオーソリューションは世界に大きく遅れを取っている。
世界標準・ホームページ制作王の普及を妨げる、あらゆる工作活動を糾弾せねばならない。
制作王の普及によって、標準未満のオーサリングツールしか作れない連中を淘汰しなければならない。
そして、我が国は、1日も早くホームページ制作王の標準化を達成し、世界に追いつかねばならない。
世界が認めたホームページ制作王
http://pc11.2ch.net/test/read.cgi/hp/1144987720/
0061nobodyさん
2007/03/17(土) 07:46:05ID:CM4Ebl87≫インデックスのサイズ
≫n-gramインデックスなら文書の賞味サイズの2.5倍程度になります。
とあるんですが、2GBのテーブルなら約5GBのファイルが出来るってこと
なのでしょうか?
0062nobodyさん
2007/03/17(土) 08:16:54ID:???http://qwik.jp/tritonn/
OSC2007のSennaのプレゼン見てきたけど、かなりおもしろかった。
その日のセッションの中で一番よかったかも。
0063nobodyさん
2007/03/17(土) 15:41:43ID:???0066nobodyさん
2007/03/19(月) 10:17:28ID:???もれもOSC2007見てきたけど、なかなか良かった。
今後tritonnのドキュメントが充実していけば嬉しいな。
でも、確かにMeCabとSenna入れて、それからMySQLにパッチあてて
コンパイルしないといけないってのはメンドイな。。。。
0067nobodyさん
2007/03/20(火) 17:35:18ID:???0068nobodyさん
2007/03/21(水) 01:44:58ID:???$ sudo apt-get install senna
か
$ cd /usr/ports/database/senna && sudo make install
とかじゃだめなんか
0070nobodyさん
2007/03/22(木) 00:44:36ID:???休み一日潰したかいがあったよ
0072nobodyさん
2007/03/22(木) 04:09:08ID:???0073nobodyさん
2007/03/22(木) 05:09:20ID:???7秒平均かかってたクエリーが.5秒以下になった
Webベースのアプリなんでこれで十分す
>>72
mysqlのコマンドってmsecレベルの計測出来るの?
0074nobodyさん
2007/03/22(木) 06:07:09ID:???俺はきっとハッピーな気分になれるんだ
0075nobodyさん
2007/03/22(木) 06:09:17ID:???10万件くらいあればlike検索で7秒くらいかかるんじゃない?
0076nobodyさん
2007/03/22(木) 07:30:58ID:???150万件でテーブル[int(10),text]サイズが1.5Gくらいです
検索は75の書いておられる通りで、
MATCH(title) AGAINST('+Sagasu -Iranai' IN BOOLEAN MODE)
みたいなのをlikeでやってました
“これで十分す”と書いておきながら構築中に気になった
(スレ違いな)質問いいでしょか?
http://qwik.jp/senna/mysql_configure.html
CPU: Intel(R) Pentium(R) D CPU 3.20GHz stepping 04
なのですが、configure時の-mtuneってどれがよかったんでしょ?
あと、MySQL+PHPではsmp対応カーネルを使わないほうがいい
とググって得た情報なのですがこれは正しいですか?
というような質問をしているものですのであまり参考にならないとは
思いますが。。
007770(↑も)
2007/03/22(木) 08:04:01ID:???ググると結構前に「直したよ」っていうのが見つかったんだけど
あ、tritonn-1.0.0.mysql-5.0.37.senna-1.0.2でインストールしました
(ブラジルの中の人ってここ見てるんでしょか?)
0078nobodyさん
2007/03/22(木) 08:04:48ID:???無理にsenna導入しなくてもLIKE検索で十分ってことだな。。。
0079nobodyさん
2007/03/23(金) 00:57:11ID:???マジ!? 作業しにいきますよ…
手で入れるけどさ。
>>68
Senna本体のインストールは難しくないんだけどね…
MySQL + SennaをDebianやFreeBSDの公式パッケージにしたいです。
パッケージ化の実作業はともかく、
メンテナとしてパッケージを投稿するための
How Toを勉強する時間が足りないです。
>>72
うひひ。大規模サイトだと、それ結構効いてくるんすよ、
とマジレス。
0080nobodyさん
2007/03/23(金) 00:58:08ID:???SMPじゃないほうがいいのは、
多分InnoDBのことじゃないかしら。詳しくないけど。
OpteronとかNoconaとかガンガン指定して
PHPフロントのシステムを動かしているけど、問題ないよ。
>>77
直ってるとは思うけど、
MyISAMのテーブルのドロップなら、
最悪ファイルをすべてrmすればOK。
tritonn-1.0.0はdrop indexで
一時インデックスが残るバグがあるけれど、
これも一時インデックス(#で始まるファイル名を持つ)
をrmすればOK。1.0.1を急いで入れる必要なし。
>>78
そのとおり。
将来的に困ったら導入を検討してくだせぇ…
(媚びた目をして)
008170
2007/03/23(金) 07:21:32ID:???aptで入るとうれしいですね
あといろいろ教えていただいてありがとうございます
一時インデックスはちょっと気になっていました 1.0.1でてたんですね
>>78
速度面以外でもFULLTEXT INDEXになってクエリーがシンプルになったり
MeCABの恩恵かと思いますが、カタカナや英数記号など
半角全角・大文字小文字を意識せずに検索出来るので
その辺の処理を省けたりで文書量が少ないものでも
利用方法によってはメリットがあるような気がします
0082nobodyさん
2007/03/23(金) 08:44:05ID:???0083nobodyさん
2007/03/23(金) 09:28:55ID:???↓
MySQLバージョンアップ
↓
MySQLにパッチ
↓
MySQLバージョンアップ
↓
MySQLにパッチ
↓
MySQLバージョンアップ
↓
MySQLにパッチ
0084nobodyさん
2007/03/23(金) 10:32:11ID:/lSdv2/+0085nobodyさん
2007/03/23(金) 10:48:37ID:???0086nobodyさん
2007/03/23(金) 11:02:26ID:???あいあいー。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
文字コード間違えてるとそんな挙動もあるかも。
0088nobodyさん
2007/03/24(土) 00:06:40ID:???0089nobodyさん
2007/03/24(土) 06:39:31ID:???0090nobodyさん
2007/03/24(土) 14:47:40ID:???ttp://lapangan.net/darwinports/index.php?cmd=read&page=PrivatePortfile%2FSenna
MeCab のデフォルト辞書を UTF-8 で作成する代わりに lex.c に手を入れて
mecab_new() の引数で UTF-8 の辞書を指定するようにしています。
0093nobodyさん
2007/03/26(月) 00:51:35ID:???全文検索機能に公式に採用されないの?
一体なにがじゃましているの?
理解できない。
0094nobodyさん
2007/03/26(月) 00:59:08ID:???全文検索機能に公式に採用されると考えるのか理解できない。
必要な人が組み込めばいいだけ。
英語圏の人がMeCabとSenna入れるなんて考えられんだろ。
Sennaはちょっと前にメジャーバージョンが出たばかりだし、
APIも結構変わってて安定しているとは言いがたい。
実際使ってるが動作はそこそこ安定してるけどね。
0095nobodyさん
2007/03/26(月) 01:34:44ID:???今の時代に、日本語サポートが含まれるはずが無いなんて
どういう頭をしているんだ?
0096nobodyさん
2007/03/26(月) 01:38:07ID:???PHPと同じようにMySQLは日本語サポートしてるよ。
でPHPと同じようにSennaバインディングは組み込まれてないよ。
どういう頭をしているんだ?
0097nobodyさん
2007/03/26(月) 01:48:12ID:???そうだな。
だから、
> なんで、一介の日本語検索エンジンが
とか
> 英語圏の人がMeCabとSenna入れるなんて考えられんだろ。
とか、
そういう考えがおかしいと言うことだな。
同じ理屈で、phpも公式に採用しない理由は無いということだな。
まあ、全文検索という機能はデータベースの方が重要だから、
phpよりも先にMySQLやPostgreSQLに採用されるべきだな。
0098nobodyさん
2007/03/26(月) 02:06:48ID:???「日本語で高度な全文検索をしたい」という99%以上のユーザに関係ない機能のために
配布パッケージに日本語形態素解析エンジンや日本語の辞書や日本語の検索エンジンライブラリを
含めることなんてありえない話だと思うがな。
あっという間にパッケージの容量とコンパイル時間が5割り増しだ。
まぁ含めろとまでは言ってなくてデフォルトで
--enable-senna --senna-prefix=/usr
とかをサポートしろとかいう話なのかも知れんが。
もっとも各言語の検索エンジンがMySQLに実装されてどの言語でも全文検索がデフォルトで
できるようになったらすごいことだと思うけど。
MySQLはストレージであって高度な検索エンジンではないのでその方向性は限りなく
ありえないものだとは言っておくよ。
必要なユーザが好きな検索エンジンを勝手に組み込めばよい。
0099nobodyさん
2007/03/26(月) 02:17:01ID:???Sennaは高速全文検索として利用価値が高いと思うけど。
0100nobodyさん
2007/03/26(月) 02:30:28ID:???すでにMySQLやPostgreSQLにスペース区切りという、
特定の言語に依存した全文検索機能がついている以上、
高度な検索エンジンではないとか言っても説得力が無い。
全文検索が必要かどうかの話はとっくに済んでいる。
英単語区切り以外の区切り方という、国際化対応の話なんだよ。
0101nobodyさん
2007/03/26(月) 02:57:28ID:???> すでにMySQLやPostgreSQLにスペース区切りという、
> 特定の言語に依存した全文検索機能がついている以上、
> 高度な検索エンジンではないとか言っても説得力が無い。
どこが?スコア付けもしない全文検索機能が「高度な検索エンジン」か?
ちがうだろ。
■ このスレッドは過去ログ倉庫に格納されています