161 :
nobodyさん :
2007/09/30(日) 22:59:18 ID:7soZ8WBh Senna 1.0.9 age
>>149 遅レスだけど、max_exprsはクエリで列挙できるキーワードの数の最大値ってことだよ。例えば、
"+ああん -いやん +ばかん -うふん"
だと4つのキーワードがそれぞれの演算子と共に評価されるけど、max_exprsを超える数については無視される。
Tritonnだとmax_exprs=32固定なので、一度に指定できるのは32個までという仕様になってる。
sennaのインストールや使用方法がウンコするくらい簡単になったら お金出してでも導入する。 今のように難しくて面倒くさいうちは、LIKE%%検索で乗り切る。
likeで乗り切れるくらいならsennaいらないだろう 全文検索入れるか、まったく入れないかの選択になる ってか、mysqlのバージョンが進めば、標準でマルチバイトの全文検索に対応するかな?
ところで Senna っていうと MySQL で使う話ばっかり出てくる気がするんだが Ludia 使ってる香具師おらんの?
トリ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 だけしかありません。 どうすればうまく辞書の再構成ができますか?
>>164 そうだよそうだよソースだよ!
MySQLが標準で日本語の全文検索に対応してくれりゃいいんだよね。
どこかの会社が全文検索を初めから使えるようにしたバージョン発売しないかな。
169 :
◆e5sgKA2q7. :2007/12/02(日) 20:38:21 ID:h6hdy91g
>>168 住商情報システムが売ってるんじゃないの?
>>151 をなんとかこしらえた者ですが・・・
試行錯誤の果て、Perlバインディングによる実現は挫折しました。
結局私はMySQLバインディング Tritonnに逃げました。
というか・・・
>>151 はインデックスの更新のために文書データを丸ごとBerkeleyDBに保存しておくので
実は、MySQLなりでDB作って検索するのと本質的に変わらないということに気付きました。
そんなわけでMySQL+tritonnでやるのなら、マトモに動くのが書けそうです・・・な。
Sunに買収されたことだし、ネイティブで日本語全文検索に対応してほしいね。 もちろん無償バージョンでも。
Perlバインディングがぜんぜん動かないので 買ったはいいがPerlから乗り換える気も起きずしまいこんでいた、Rubyの入門書を 引っ張り出してきてRubyバインディングを触ってみたらこれが 簡単に動く。 あのPerlバインディングどうなってるの・・・。
174 :
nobodyさん :2008/03/03(月) 04:05:35 ID:KobAduJV
tritonnにmysql_configって入ってないですか? phpでmysqliを使えるようにするために必要みたいなのですが・・・
tarボールの中に入ってたのでコピーしたらできました
>>175 それはまずいんじゃ…?
mysql_config って私の認識では MySQL のインストール情報を
記録しておく (いつでも表示できるような) ミニアプリなので、
手順を踏んでインストールしないと意味がないもののような気がする。
パッケージ管理システムを採用しているような Linux ディストリビューションなら、
mysql-devel とか mysql-dev みたいな名前のパッケージを導入するのがいいのではないかな。
>>178 確かに妙な感じになったので
RPM版をすべてアンインストールしてtarball版を使うことにしました
たしかmysql-dev相当のがなんかしらんけどインストールされなかったよね -configもそのひとつだったとおもう specを調整しないといけなかったような
2chのスレのdatファイルをgz圧縮して格納しているんだが、 これをSennaで検索できるようにしたい。 インデックスを作るだけなら単に解凍してインデックスすればいいから いいけど、 問題はスニペット。 検索結果を20件ずつ分けて表示するとしても、 検索結果を表示するたびに20個のgz圧縮datを解凍して スニペットを作るというのは解凍が無駄なような気がする。 どうしたものか・・・。 スニペットを消すというのも手と言えば手だが思考停止に他ならないような気がする。 そうすると、解凍したdatをキャッシュするとかですかね・・・。 ちなみに現在の格納数は2818個です。 この2818個が196052KB(圧縮したサイズ)、 今後70GB程度まで格納を続けるつもりです。 196052KBの70GBに占める割合は0.2%ぐらいです。
解凍したものをポスグレとかMySQLに突っ込むのはダメなの? ポスグレの場合は、大きいレコードは勝手に圧縮されるはずだから、 容量もあまり食わないし、キャッシュとかもしてくれると思う。 MySQLもそうなんじゃない?知らないけど。
>>180 レスありがとうございます。
データベースですか・・・
一応MySQLを使っていますがまだ勉強途中で圧縮されるかどうかは知らないです。
解凍したものをキャッシュするとすればそれが最適ですかね・・・
判りました、ありがとうございました。
MySQLは自動圧縮はないと思う。
183 :
nobodyさん :2008/04/07(月) 18:43:10 ID:ubFKDoY/
トリトンのipadicのdicrcで config-charset = EUC-JP ってなってるんですが、これ間違いですか? トリトンに組み込んでる辞書はUTF-8にしてるはずですよね? EUC-JPへの辞書コンバートがどうもうまくいかず 調べているうちに見つけました これが原因なのかどうかはまだ分かりませんが
dirrcで設定したら正しくコンバートできました コンバートしてもdirrcは書き換わらないので そのままになってるみたいですね
sage
186 :
nobodyさん :2008/09/02(火) 03:21:09 ID:CDQGh37S
>>111-112 の SEN_INDEX_SPLIT_ALPHA とかを有効にしたいんだけど
ソースからいれないと駄目なのかな?
TritonnのLinux x86(non RPM packages)を使っています
>>186 バイナリ配布のものでもいけるはずですよー。
http://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(
http://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」か
誤:MW ware ↓ 正:VMware workstation version 5.0.0
潰れるってナニ? コア吐いてプロセスが死んじゃうの?
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] っっっっ
>>193 インデックスのロックかかってるみたいね。
mysqldを落としてmyisamchk -rをすれば直るはず。
稼動中のデッドロックの問題は反映されてるけど、
途中でお亡くなりになった場合にはロックがかかりっぱになることがある。
FULLTEXTで使われる、()"' 等を含んだ語や、頭に+-~のついた語を検索したい場合 どのようにエスケープするべきでしょうか? 検索は下記のように行っています。 〜WHERE match (myText) AGAINST("*E-4D+ ABC" IN BOOLEAN MODE)
>>195 \(とか\)とか\"とか\'とか、
"+test"とか"-word"とか、
できた記憶が。
197 :
195 :2008/12/05(金) 21:59:57 ID:???
>>196 早速有難う御座います。
この方法で試してみたいと思います。
明けましておめでとうございます 今年もよろしくです>Senna&Tritonn
あめおめ書きこみキタコレ 今年はSennaの次期バージョンが出ますよー。名前も変わるお
今日FreeBSDのportsにtoriton当てようとして失敗した私が通りますよっと バージョンアップ早すぎだって
グルーンガってamazonのsimpleDBとかっぽい感じかなー
>>201 MonetDB的な感じでー。いちおうデータ保存についてはブログ書いてみた。
203 :
nobodyさん :2009/02/26(木) 14:03:20 ID:5H0gEPaO
ブラジル社員乙
find.2ch.netみたいに2chのログを検索出来るようにするには、どうすればいいのだろうか
〜WHERE match(myText) AGAINST("+あああ -いいい" IN BOOLEAN MODE) いける 〜WHERE match(myText) AGAINST("-いいい" IN BOOLEAN MODE) 駄目・・・ NOTのみの検索ってどうしたらいいんでしょか?
207 :
205 :2009/03/12(木) 03:17:36 ID:???
>>206 ありがとうございます 出来ました!
MLで
>クエリを発行する用途
について書かれていたのですが、
私の場合(Senna導入以前からの実装を引きずってますが)一旦
大分類・小分類・期日指定 で全文検索を用いずにある程度データを絞ります
抽出されたデータのうち95%程度が条件Aに起因するものとして、残り5%の
レアケースを調べたい場合に
-条件A
とやりたかったのです
208 :
nobodyさん :2009/04/30(木) 02:23:25 ID:5kl3TBKx
amazon EC2上の Ubuntu8.04 にtritonnをインストールしようとしているのだが、 ソースをmake install した後、mysql_install_dbをするといつまでたっても終わらん。 普通このコマンドってどれくらいの時間で終わるんだ? mysql自体ソースから入れたことないからわからんのだ・・ ちなみに以下の手順でやった *mecabをインストール #apt-get install mecab #apt-get install mecab-ipadic #apt-get install libmecab-dev +IPA辞書をUTF-8に変換 # /usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/ipadic -o /var/lib/mecab/dic/ipadic -f euc-jp -t utf-8 -p #/usr/lib/mecab/mecab-dict-index -d /usr/share/mecab/dic/juman -o /var/lib/mecab/dic/juman -f euc-jp -t utf-8 Mecabで利用する辞書の切り替え # update-alternatives --config mecab-dictionary (続く)
209 :
nobodyさん :2009/04/30(木) 02:25:32 ID:5kl3TBKx
$ time mysql_insert_db read 0m0.594s user 0m0.180s sys 0m0.260s ローカルでやってみたよ 人柱乙m9(^Д^)
211 :
208-209 :2009/04/30(木) 15:32:26 ID:A/wdozZu
>>210 orz...
6時間待っても終わらなかった・・・
むー、Amazon EC2ためしにやってみようかしら。
213 :
208-209 :2009/05/01(金) 12:40:19 ID:AyTUx5sf
今度はamazon公式イメージのfedora8でやって、rpmで入れたらすんなりはいった。 よくわからないubuntuイメージを使ったのがいけなかったのか?
214 :
nobodyさん :2009/05/29(金) 15:10:26 ID:QSnA4b1n
sanna+mecab+mysqlでためしてますが、検索結果がおかしい… windowsだと200件ヒットするのにwinだと10件しかヒットしないんですけど何が原因ですか? "win" in boolean mode や ft_min_word_len=1 など設定して再ビルドしましたがうまくいきません。
グニャラくんのブログをしっかり読めばわかる 要するに検索漏れ
>>214-215 漏れじゃないお!
SPLIT_ALPHA的なフラグを指定するといいです。
winのようなprefixだったら、
"*E-7 win"とかでもひっかかるかな。
ft_min_word_lenとかはSennaには全く影響がないので注意。
218 :
214 :2009/05/31(日) 16:10:19 ID:???
お礼遅れて申し訳ないです。 *E−7で解決できました。 多くの回答いただき感謝します。 ps wikipediaデータで実験してますが流石に全文検索は5分くらいかかりますねorz..
>>218 5分って遅すぎ!
メモリか論理空間足りなくてスラッシングが起こってるんじゃね?
220 :
214 :2009/06/02(火) 13:56:57 ID:???
遅いですか?(ということはもっと早くなる!?) メモリは2GでWikipediaデータは5Gぐらいです まだチューニングをあまりしていないのでちょっといじって見ます
>>220 0.何秒で検索できるはず。
Wikipediaデータが5Gくらいあるなら、メモリも5Gくらいないと厳しいよー。
んで、メモリ5G積むためには、OSも64bit化しないと。
222 :
214 :2009/06/04(木) 13:49:53 ID:???
>>221 ありがとうございます。
遅いのはやはりサーバスペックの問題ですね…発注してきます
度々で申し訳ないのですが、全文検索で「完全一致→非わかち書き→部分一致」の順で取り出したいのですがうまくいきません。
select title from searchindex where match(title) against('*E1,5 Google' in boolean mode) limit 10\G
*E1,5*D+などのプラグマもためしてみましたがだめでした。
show senna statusは以下のような感じです。
Table: searchindex
Key_name: si_title
Column_name: si_title
Encoding: utf8
Index_type: NGRAM
Sectionalize: OFF
Normalize: ON
Split_alpha: OFF
Split_digit: OFF
Split_symbol: OFF
Initial_n_segments: 512
Senna_keys_size: 1146887
Senna_keys_file_size: 33628160
Senna_lexicon_size: 430378
Senna_lexicon_file_size: 12656640
Senna_inv_seg_size: 136482816
Senna_inv_chunk_size: 18223104
おもに参考にしたのは以下です。
ttp://lucene.jugem.jp/?eid=158 ttp://qwik.jp/senna/query.html
223 :
214 :2009/06/04(木) 14:37:07 ID:???
どううまくいかないのかを書き忘れましたorz… 完全一致が1番目にこないです。 --------------------- Top_10_Google_hits Google_マップ Google_Earth Google←これが1番にきてほしい … --------------------
>>223 それは検索スコアの問題だから難しいす。
僕が作っている実システムでは、
・タイトル完全一致のみで検索(Sennaのインデックスを使わずに、MySQLのB-Treeインデックスを作る)
・全文検索
を分けて2回クエリ投げています。
>>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
227 :
214 :2009/06/05(金) 14:23:35 ID:???
みなさまありがとうございます。
>>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回目以降の速度が計れるんじゃないかな。
245 :
242 :2009/06/20(土) 05:04:34 ID:???
測定基準整理して計り直してみた。 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 指定の有無は優位な差を生まなかった。
246 :
242 :2009/06/20(土) 05:06:04 ID:???
搭載メモリ 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 指定の有無は優位な差を生まなかった。
247 :
242 :2009/06/20(土) 05:18:28 ID:???
メモリ 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では同様の動作が問題なく継続できていました。 サービスを再起動すると復活するのですが、 同じように何分か処理を走らすと同様の状態になります。 メモリなどハードウェアはまだ余裕の状態です。 何が原因でどうしたらいいかなど八方塞になってしまいました。 どなたかアドバイスいただけませんでしょうか。
250 :
nobodyさん :2009/08/17(月) 16:21:20 ID:ha4chuFj
人いない sennachkドキュメントないんだけどこれ使えるの?
>>250 まあ今時こんな性能が悪いものは、みんあ使わんってことだ
252 :
nobodyさん :2009/08/17(月) 22:15:10 ID:a7sy8cob
253 :
nobodyさん :2009/09/05(土) 21:32:55 ID:4Qwo+WsH
mecabの辞書がUTF-8になってるから、 sjisのdbでは使えないと思ってたんだけど やってみたら使えてるみたい。 ngramインデックスの場合、mecabの辞書に気を遣う必要ないという認識でOKですか?
そりゃngramインデックスならmecab関係ないだろ。 mecabなしでも使えるわけだし。
test
256 :
nobodyさん :2010/03/25(木) 03:31:01 ID:txB00Cpn
あれ、半年もレスなかったのか・・・ なにか他にいいのが出てるの? アゲてみる、ごめん
257 :
nobodyさん :2010/04/04(日) 09:24:54 ID:f5hMLlFL
tritonn使ってみようかと思ってるんですが、 将来的にDBをマシン間で引越しするとき、MyISAMは単純にファイルコピーだけ、 ダンプ→インポートしなくても引越しできるようですが、付加されたsenna関連である sen.*についても単純にファイルコピーだけでOKなんでしょうか。
258 :
nobodyさん :2010/04/07(水) 02:19:15 ID:nn78rN3+
どんな挙動するのかは知らないけど センファイルは殲滅しておk やたらでかいし、バックアップ対象からも外してるよ インデックス張り直せば勝手に作るし
259 :
nobodyさん :2010/04/16(金) 10:09:21 ID:dbk/orQU
トリトン使ってるけど 時間によって検索結果に出たり出なかったりする時があるみたい インデックスへの反映具合を確認する方法があればいいんだけど
Senna、Lucene、Solrなど オープンソース系検索エンジンの 性能比較をやってるHPありませんか?
以前見たような気がするからググれば出てくるんじゃね?
262 :
nobodyさん :2010/05/31(月) 10:03:05 ID:ldCXIDLw
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なのですがどちらも結果は同じです。
263 :
nobodyさん :2010/06/02(水) 00:02:33 ID:pNSVCSiw
264 :
nobodyさん :2010/06/02(水) 00:03:25 ID:pNSVCSiw
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
首吊り首絞めプレイ大好き高根英哉
265 :
nobodyさん :2010/06/02(水) 00:04:26 ID:pNSVCSiw
53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0
>>18 高根英哉blogでレイプ仲間募集中
私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
・SMを実践している、または興味がある
・マスクを用意できる
・都内でイベント参加できる
・イベント内容およびこの仲間を通じて知りえた情報を口外しない
・成人男子である
・携帯電話および携帯メールアドレスを私に公開できる
・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
r
[email protected] [email protected] [email protected]
266 :
262 :2010/06/02(水) 08:04:37 ID:kP3cOHz1
>>262 はtritonnの仕様っぽいですね。
これはどうしようも無いことなのかな?
てっきり出来ると思ってたからがっくし。
267 :
nobodyさん :2011/05/22(日) 12:38:20.48 ID:gdrY9aId
groonga来てるから話題減ってる気がするけど、あげ。
limit a,b 指定で b の抽出件数指定は効くんだけど、a がゼロから効かない。 100,10 や 1000, 10 と指定しても、0, 10 と同じ結果。 フルテキストインデックス再構築したけど同じ。 インストした頃はちゃんと表示されたはずなんだが…。