組み込み型全文検索エンジンSenna (274レス)
1-

219: 2009/06/02(火)10:32 ID:??? AAS
>>218
5分って遅すぎ!
メモリか論理空間足りなくてスラッシングが起こってるんじゃね?
220
(1): 214 2009/06/02(火)13:56 ID:??? AAS
遅いですか?(ということはもっと早くなる!?)
メモリは2GでWikipediaデータは5Gぐらいです
まだチューニングをあまりしていないのでちょっといじって見ます
221
(2): 2009/06/04(木)03:16 ID:??? AAS
>>220
0.何秒で検索できるはず。

Wikipediaデータが5Gくらいあるなら、メモリも5Gくらいないと厳しいよー。
んで、メモリ5G積むためには、OSも64bit化しないと。
222: 214 [age] 2009/06/04(木)13:49 ID:??? AAS
>>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
省17
223
(1): 214 [age] 2009/06/04(木)14:37 ID:??? AAS
どううまくいかないのかを書き忘れましたorz…
完全一致が1番目にこないです。
---------------------
Top_10_Google_hits
Google_マップ
Google_Earth
Google←これが1番にきてほしい

--------------------
224
(1): 2009/06/04(木)19:15 ID:??? AAS
>>223
それは検索スコアの問題だから難しいす。

僕が作っている実システムでは、
・タイトル完全一致のみで検索(Sennaのインデックスを使わずに、MySQLのB-Treeインデックスを作る)
・全文検索
を分けて2回クエリ投げています。
225
(1): 2009/06/05(金)12:38 ID:??? AAS
>>221
>Wikipediaデータが5Gくらいあるなら、メモリも5Gくらいないと厳しいよー。

DBを基礎から勉強し直せ
226
(1): 2009/06/05(金)13:37 ID:??? AAS
デフォルトではスコア順にソートされないです。こんな風に書くとどうですかねぇ。。

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
(1): 214 [age] 2009/06/05(金)14:23 ID:??? AAS
みなさまありがとうございます。
>>224さん
いろいろ調べてみましたがそのやり方しかないのかもしれません…
公式ではEプラグマで実現できそうなのですが…

>>226さん
*E数値1[,数値2]プラグマもためしたのですが公式に記載されている挙動をしていないようです。
公式の説明ではE1,5で全文一致が1つ以下なら5つスコアを下げて部分一致をとる挙動になると思うのですが完全一致も部分一致も同じスコア値になっています。
+--------------------+-------+
| page_title | score |
+--------------------+-------+
省6
228
(2): 2009/06/06(土)00:33 ID:??? AAS
>>225
全部キャッシュに載ってないと厳しいよ。
SSDならなんとかなるかもしれないけど。
229: 2009/06/06(土)00:37 ID:??? AAS
>>227
Top_10_Google_hitsは前方一致でひっかかってるよ。
_は記号扱いなので、
Top 10 Google hitsと同じような感じでひっかかります。
230
(2): 2009/06/06(土)11:26 ID:??? AAS
>>228
これって全部キャッシュにのってないと
0.何秒が5分になるような検索エンジンなのかよw
少なくともインデックスがオンメモリであれば十分速度は出るんじゃないのか?
231
(2): 2009/06/06(土)15:53 ID:??? AAS
>>228
お前がDB利用経験ないのはよくわかったからまず基礎を学んでから来い、な?
232: 2009/06/06(土)18:54 ID:??? AAS
>>230
5Gのコンテンツだと、経験上インデックスサイズがだいたい5Gになるんすよ。
というわけで、いつも目安としてコンテンツサイズ分はメモリとって、と言っています。
コンテンツがテストデータだったりして、同じ文言ばっかりだとコンテンツデータに比例してサイズ増えねっす。

インデックスを全部オンメモリに載せないと速度は出ないと思う。
インデックスファイルのうち、.lと.iはメモリに載っていてほしい。
i.cはメモリに載ってなくてOK。
スラッシング起きたら、どのエンジンでも速度でないよー。

>>231
基礎から学んでくるお!いいサイト教えて。
233
(2): 2009/06/06(土)21:56 ID:??? AAS
5G5分って16.7MBpsだぞ、シーケンシャルアクセス以下だ。インデックスが使われてない状態だろうが。

>インデックスを全部オンメモリに載せないと速度は出ないと思う。
>スラッシング起きたら、どのエンジンでも速度でないよー。

「最高のパフォーマンス」と「まともな速度」の区別もつかないDQNなのかよ

>>231
>基礎から学んでくるお!いいサイト教えて。

つGoogle
234: 2009/06/07(日)01:20 ID:??? AAS
>>233
>シーケンシャルアクセス以下だ
おお、論点理解。確かにそうだねー。
235
(1): 2009/06/07(日)01:41 ID:??? AAS
>>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)が
実メモリサイズを超えていたら危険な香り。
236: 2009/06/08(月)05:55 ID:??? AAS
>.SEN/.SEN.lは激しくランダムアクセスが走るので、
>こいつらがオンメモリにないと単なるシーケンシャルスキャンより遅くなってもおかしくないな。

オンメモリでないとシーケンシャルより遅くなるって、そんなのインデックスとは呼べないだろ
237: 2009/06/08(月)19:39 ID:??? AAS
インデックスをメモリに載るようにするのってDBの常識じゃないの?
238
(1): 2009/06/09(火)19:32 ID:??? AAS
最高のパフォーマンスとまともなパフォーマンスの区別もつかない奴が常識を語る時代なのか…
1-
あと 36 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.770s*