組み込み型全文検索エンジンSenna
>>221 >Wikipediaデータが5Gくらいあるなら、メモリも5Gくらいないと厳しいよー。 DBを基礎から勉強し直せ デフォルトではスコア順にソートされないです。こんな風に書くとどうですかねぇ。。 select title, match(title) against('*E1,5 Google' in boolean mode) as score from searchindex where match(title) against('*E1,5 Google' in boolean mode) order by score desc limit 10\G みなさまありがとうございます。 >>224 さん いろいろ調べてみましたがそのやり方しかないのかもしれません… 公式ではEプラグマで実現できそうなのですが… >>226 さん *E数値1[,数値2]プラグマもためしたのですが公式に記載されている挙動をしていないようです。 公式の説明ではE1,5で全文一致が1つ以下なら5つスコアを下げて部分一致をとる挙動になると思うのですが完全一致も部分一致も同じスコア値になっています。 +--------------------+-------+ | page_title | score | +--------------------+-------+ | Top_10_Google_hits | 5 | | Google_Earth | 5 | … | Google | 5 | +--------------------+-------+ また"Google"で完全一致がとれません。"Google*"でも前方一致以外がとれたり(Top_10_Google_hitsもとれる)します。 >>225 全部キャッシュに載ってないと厳しいよ。 SSDならなんとかなるかもしれないけど。 >>227 Top_10_Google_hitsは前方一致でひっかかってるよ。 _は記号扱いなので、 Top 10 Google hitsと同じような感じでひっかかります。 >>228 これって全部キャッシュにのってないと 0.何秒が5分になるような検索エンジンなのかよw 少なくともインデックスがオンメモリであれば十分速度は出るんじゃないのか? >>228 お前がDB利用経験ないのはよくわかったからまず基礎を学んでから来い、な? >>230 5Gのコンテンツだと、経験上インデックスサイズがだいたい5Gになるんすよ。 というわけで、いつも目安としてコンテンツサイズ分はメモリとって、と言っています。 コンテンツがテストデータだったりして、同じ文言ばっかりだとコンテンツデータに比例してサイズ増えねっす。 インデックスを全部オンメモリに載せないと速度は出ないと思う。 インデックスファイルのうち、.lと.iはメモリに載っていてほしい。 i.cはメモリに載ってなくてOK。 スラッシング起きたら、どのエンジンでも速度でないよー。 >>231 基礎から学んでくるお!いいサイト教えて。 5G5分って16.7MBpsだぞ、シーケンシャルアクセス以下だ。インデックスが使われてない状態だろうが。 >インデックスを全部オンメモリに載せないと速度は出ないと思う。 >スラッシング起きたら、どのエンジンでも速度でないよー。 「最高のパフォーマンス」と「まともな速度」の区別もつかないDQNなのかよ >>>231 >基礎から学んでくるお!いいサイト教えて。 つGoogle >>233 >シーケンシャルアクセス以下だ おお、論点理解。確かにそうだねー。 >>233 インデックスは使われていると思うよ。 実際*E-7のプラグマも動いているし、Sennaまで処理が落ちているのは間違いない。 .SEN/.SEN.lは激しくランダムアクセスが走るので、 こいつらがオンメモリにないと単なるシーケンシャルスキャンより遅くなってもおかしくないな。 というわけで、>>214 はMySQLのデータディレクトリにある.SEN、.SEN.lファイルの容量を計算する。 あと、http://dsas.blog.klab.org/archives/50860867.html にあるmymemcheckで、min_memory_neededを計算する。 (.SENの総容量 + .SEN.lの総容量 + mymemcheckのmin_memory_needed)が 実メモリサイズを超えていたら危険な香り。 >.SEN/.SEN.lは激しくランダムアクセスが走るので、 >こいつらがオンメモリにないと単なるシーケンシャルスキャンより遅くなってもおかしくないな。 オンメモリでないとシーケンシャルより遅くなるって、そんなのインデックスとは呼べないだろ インデックスをメモリに載るようにするのってDBの常識じゃないの? 最高のパフォーマンスとまともなパフォーマンスの区別もつかない奴が常識を語る時代なのか… >>238 最高のパフォーマンス: インデックスも実データもメモリ上 まともなパフォーマンス: インデックスはメモリ上、実データはメモリ外 パフォーマンスでない: インデックスがメモリ外で、スラッシング起こしている だろ。 B-treeインデックスもmmapにしろOSのキャッシュにしろ実メモリ上にないと遅いと思うぞ。 >>238 はDBに大変詳しいようだから、>>214 に何かアドバイスするといいのでは? パフォーマンスでない場合って検索に5分かかって当然なの? 仮にインデックスがメモリに乗らなかったとして、それで5分はないだろ。何か間違ってるとしか。 もしスラッシングが起きてるならメモリの割り当て量間違ってるってことだし。 とりあえず Wikipedia のデータ全文投入してインデックス作ってみたよ。 ■データサイズ 37822464 2009-06-19 01:03 wiki.001.SEN 387616768 2009-06-19 01:03 wiki.001.SEN.i 1073614848 2009-06-19 01:03 wiki.001.SEN.i.c 1073741824 2009-06-19 01:03 wiki.001.SEN.i.c.001 247463936 2009-06-19 01:02 wiki.001.SEN.i.c.002 801185792 2009-06-19 01:03 wiki.001.SEN.l 4686036956 2009-06-19 01:03 wiki.MYD 15630336 2009-06-19 01:03 wiki.MYI MYD と MYI の合計が 5G 弱、 SEN と SEN.i と SEN.l の合計が 1.2G 強。 ■mysqld メモリ使用量 インデックス作成時 → 1.3GB 検索時 → 60MB ■検索にかかる時間 SELECT * FROM wiki WHERE MATCH(text) AGAINST(?) LIMIT 10 で0.5秒くらい ■環境 D945GCLF (ATOM 230) メモリ: 2GB OS: Debian 5.0.1 おっと書きかけで送信してしまった ■検索にかかる時間 … 「wiki」や「space」等1万件以上ヒットする単語で検索 SELECT * FROM wiki WHERE MATCH(text) AGAINST(?) LIMIT 10 →初回0.2秒、2回目以降2ミリ秒 SELECT * FROM wiki WHERE MATCH(text) AGAINST(?) LIMIT 10000 →初回40〜60秒程度、2回目以降1.5秒程度 ■環境 D945GCLF (ATOM 230) メモリ: 2GB HDD: 40GB の IDE OS: Debian 5.0.1 (32bit) …ということで、LIMIT さえ効かせれば1秒以下で検索できるよ。 オンメモリじゃないとシーケンシャルスキャンより遅くなってもおかしくないとかアホじゃね? >>218 は LIMIT 句付けてないんちゃう? それかクエリ間違っててインデックス使われてないとか >>242-243 それか!全件結果を返すのはそりゃ重い。 .SENと.SEN.lがオンメモリなら十分速度出ると思うよー! この2つの一部がページアウトしてるとマジキツいっす。 2回目以降異常に早いのはクエリキャッシュが効いてそう。 /* SQL_NO_CACHE */を入れてみると本来の2回目以降の速度が計れるんじゃないかな。 測定基準整理して計り直してみた。 OS 起動直後、インデックスがキャッシュに一切載っていない状態で 「wiki」で検索 (1万件以上ヒットする) し、応答時間を測定。 1回目 LIMIT 10: 0.643秒 LIMIT 100: 1.129秒 LIMIT 1000: 5.787秒 LIMIT 10000: 49.523秒 2回目以降 (SQL_NO_CACHE 無しの場合) LIMIT 10: 0.007秒 LIMIT 100: 0.029秒 LIMIT 1000: 0.203秒 LIMIT 10000: 1.467秒 2回目以降 (SQL_NO_CACHE 指定の場合) LIMIT 10: 0.007秒 LIMIT 100: 0.029秒 LIMIT 1000: 0.202秒 LIMIT 10000: 1.462秒 SQL_NO_CACHE 指定の有無は優位な差を生まなかった。 搭載メモリ 2GB だったのを 512MB に減らした状態でも測定してみた。 SEN と SEN.l の合計が 800MB 強なので、明らかに物理メモリよりインデックスの方が大きい状態。 1回目 LIMIT 10: 0.634秒 LIMIT 100: 1.104秒 LIMIT 1000: 5.787秒 LIMIT 10000: 50.292秒 2回目以降 (SQL_NO_CACHE 無しの場合) LIMIT 10: 0.007秒 LIMIT 100: 0.030秒 LIMIT 1000: 0.207秒 LIMIT 10000: 42.752秒 2回目以降 (SQL_NO_CACHE 指定の場合) LIMIT 10: 0.007秒 LIMIT 100: 0.030秒 LIMIT 1000: 0.208秒 LIMIT 10000: 42.771秒 LIMIT 1000 まではメモリ 2GB の時と同じ状態。 今回も SQL_NO_CACHE 指定の有無は優位な差を生まなかった。 メモリ 512MB 環境下で LIMIT 10000 の時のみ 2回目の数値が極端に悪くなって1回目と大差なくなっているのは、 1回目検索時に読み込まれたデータが多すぎてキャッシュから溢れたためだろう。 実運用では同じ検索語が連続してくることなど希だから このキャッシュミス状態はかなり起きやすくなるはず。 なのでインデックスは全部オンメモリであることが強く望ましいのは間違いない。 が、だからといって >>235 > こいつらがオンメモリにないと単なるシーケンシャルスキャンより遅くなってもおかしくない などというアホなこともない。 きちんと LIMIT 切ってやればメモリに全く載って無い状態ですら1秒で帰ってくる。 (ORDER BY とかつけてると LIMIT 付けててもダメな予感がするがまだ試してない) また、 >>230 > 5Gのコンテンツだと、経験上インデックスサイズがだいたい5Gになるんすよ。 そういうケースもあるのかもしれんが、少なくとも今回試した Wikipeida 全文では コンテンツ 5GB 弱に対してインデックス 1GB 弱になった。 よって 2GB で十分オンメモリになる。 それにしても、今回テストした ATOM で IDE 40GB の HDD で OS 起動直後で 1万件ヒットする単語でも1分越えしなかったわけだが、 >>214 はいったいどういう環境とクエリで検索したんだ? 64ビットOSにしてメモリ5Gは積まないととか言ってた奴はどこ行ったの? 通常のMysqlで動作が遅かったため tritonn-1.0.12-mysql-5.0.67-win32.zip をインストールしてみたのですが、 何分かInsert Selectを連続して行っているとDBが落ちてしまい MySQLAdministratorから「Can't crete a new thread errno12」とでて ログインできなくなったり、 できてもスキーマやテーブル一覧が取得できなくなります。 この状態で.NETからSelectなどの処理を行うと 「Got error 12 from storage engine」 とでて処理できません。 Mysql6では同様の動作が問題なく継続できていました。 サービスを再起動すると復活するのですが、 同じように何分か処理を走らすと同様の状態になります。 メモリなどハードウェアはまだ余裕の状態です。 何が原因でどうしたらいいかなど八方塞になってしまいました。 どなたかアドバイスいただけませんでしょうか。 人いない sennachkドキュメントないんだけどこれ使えるの? >>250 まあ今時こんな性能が悪いものは、みんあ使わんってことだ mecabの辞書がUTF-8になってるから、 sjisのdbでは使えないと思ってたんだけど やってみたら使えてるみたい。 ngramインデックスの場合、mecabの辞書に気を遣う必要ないという認識でOKですか? そりゃngramインデックスならmecab関係ないだろ。 mecabなしでも使えるわけだし。 あれ、半年もレスなかったのか・・・ なにか他にいいのが出てるの? アゲてみる、ごめん tritonn使ってみようかと思ってるんですが、 将来的にDBをマシン間で引越しするとき、MyISAMは単純にファイルコピーだけ、 ダンプ→インポートしなくても引越しできるようですが、付加されたsenna関連である sen.*についても単純にファイルコピーだけでOKなんでしょうか。 どんな挙動するのかは知らないけど センファイルは殲滅しておk やたらでかいし、バックアップ対象からも外してるよ インデックス張り直せば勝手に作るし トリトン使ってるけど 時間によって検索結果に出たり出なかったりする時があるみたい インデックスへの反映具合を確認する方法があればいいんだけど Senna、Lucene、Solrなど オープンソース系検索エンジンの 性能比較をやってるHPありませんか? 以前見たような気がするからググれば出てくるんじゃね? Tritonnの2ind機能を使って、 select * from table force index(counter) where match(title,body) against("*W1,2 てすと" in boolean mode) order by counter desc limit 100,100 という使い方は出来ないのでしょうか? 一応検索結果は得られるのですが、limit 0,100としたのと同じように、必ず先頭からの結果になってしまいます。 force index(counter)を消せば求めている結果になります。 環境はCentOSにsenna1.1.5、Tritonn1.0.12-mysql-5.0.87、 WindowsにはTritonn1.0.12-mysql-5.0.67なのですがどちらも結果は同じです。 1 :名無しさん@どっと混む[]:2009/12/14(月) 20:45:15 ID:unnBMLw10 高根社長のSM趣味サイトMaskRと 副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが 高根社長の本業コムラッドについても語ろう 銀座プレジス http://www.prezis.jp/top.htm MaskR http://maskr.com/ 【腹黒樹里高根】銀座プレジス3【客の情報開示】 http://set.bbspink.com/test/read.cgi/sm/1273492895/ 【腹黒樹里】プレジスを語ろう2【周年イベント大失敗】 http://set.bbspink.com/test/read.cgi/sm/1262702507/ プレジスを語ろう http://set.bbspink.com/test/read.cgi/sm/1246009466/ 動画配信専門リアルミストレスってどうよ? http://set.bbspink.com/test/read.cgi/sm/1249183350/ 9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O 高値はもう大麻やめたの? 10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O タカネ社長ってどうやってばれないように脱税してんだろ? 億単位で脱税して億ション暮らしなんて凄いよな 監査役の奥さんもグルなのか? 18 :名無しさん@どっと混む:2010/01/07(木) 09:26:06 ID:5NL2jyJpO 高根はMASKRでレイプ仲間募集するのやめたんだね mixiで募集中か 21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO 風俗店やってるってことは高根社長は暴力団と繋がってるんだね どこの組にいくらみかじめ料払ってるんだかw 23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O タカネ社長未成年に酒飲ませてレイプ 24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO 高根社長のレイプ趣味は病気だから治らない 25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO 前科者 26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0 >>25 容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害? 28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO どこかのスレで人を死に追いやったと書いてあった 33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0 金がないって脱税がばれて追徴課税でも来たか? せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw 38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO 首吊り首絞めプレイ大好き高根英哉 53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0 >>18 高根英哉blogでレイプ仲間募集中 私とともにマスクの女どもを弄ぶ仲間を募集する 急に思いついたら連絡をして、集まれるような仲間だ だから、複数名募集するし、いついつという日時があるわけでもない 条件は以下のとおりだ ・SMを実践している、または興味がある ・マスクを用意できる ・都内でイベント参加できる ・イベント内容およびこの仲間を通じて知りえた情報を口外しない ・成人男子である ・携帯電話および携帯メールアドレスを私に公開できる ・酒が好きである 希望者は私宛にメールを送ってほしい 全員が参加できるわけでもないので、こちらの選択に任せてもらう なるべく想いを書いてもらうほうがわかりやすいし 経験や顔写真も歓迎。 r2007@maskr.com maskr_2008@yahoo.co.jp hide@comrade.co.jp >>262 はtritonnの仕様っぽいですね。 これはどうしようも無いことなのかな? てっきり出来ると思ってたからがっくし。 groonga来てるから話題減ってる気がするけど、あげ。 limit a,b 指定で b の抽出件数指定は効くんだけど、a がゼロから効かない。 100,10 や 1000, 10 と指定しても、0, 10 と同じ結果。 フルテキストインデックス再構築したけど同じ。 インストした頃はちゃんと表示されたはずなんだが…。 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 Z25K5IFYUN senna作ってた会社ニコニコ動画に買収されたんだっけ? チエオクレのハゲの悲惨なツイッター https://twitter.com/aphonedollar ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ この自称「ハゲ」とかいうチエオクレのブログが酷すぎる >「DesktopHE」 はWindows10に対応してないらしい はぁ??? ★★★大嘘デタラメ★★★を垂れ流すな!!! ■「DesktopHE」 はWindows10でも、もちろん使えるわ!!!■ ■「DesktopHE」 はWindows10でも、もちろん使えるわ!!!■ ■「DesktopHE」 はWindows10でも、もちろん使えるわ!!!■ ■「DesktopHE」 はWindows10でも、もちろん使えるわ!!!■ ■「DesktopHE」 はWindows10でも、もちろん使えるわ!!!■ チエオクレのハゲが、Javaの設定を失敗してるだけじゃねえか!!! 嘘デタラメ垂れ流しやがって、このハゲがやっていることは立派な公害じゃねえか! hatenaとかでまで、必死こいて大嘘をばらまいているんだが https://twitter.com/5chan_nel (5ch newer account) read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる