1read 100read
2013年06月WebProg53: 【全文検索】groonga【senna後継】 (106)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
2ch全板人気トーナメントでWebProg板を1位にしよう! (172)
【 引数 】をインスウとずっと呼んでた奴 (102)
PHPの使える鯖 (150)
【perl】速いのはどっち?【php】 (177)
MacOSXでローカルCGIテスト (198)
よくあるプログラムミス (172)
【全文検索】groonga【senna後継】
1 :2011/11/01 〜 最終レス :2013/06/01 ないようなので立ててみました * groonga http://groonga.org/ja/ * mysqlに組み込むgroongaストレージ(mroonga) http://mroonga.github.com/ 関連スレ 組み込み型全文検索エンジンSenna http://hibari.2ch.net/test/read.cgi/php/1118762053/
2 : トリトンのように、テーブル作成時にcharsetを指定すればujisが使えると思っていたのですが invalid utf8 string(1) on grn_str_charlen_utf8というエラーが出て、 結果も思ったようなものになりません。 mroongaでujisのテーブルを使うには何か特別な処理が必要なのでしょうか? CentOS5のRPMを使っています。
3 : 期待あげ
4 : Apache Solrでいいじゃん。 みんな使ってるし。 終了
5 : ソーラーってmysqlに全文検索を追加できるの? 使い方は別物じゃね
6 : 名前に-を含んだデータベースを作る →groongaのテーブルを作る →テーブルを削除しようとする →エラーで削除できない 俺だけ?
7 : SQLだとどうやっても削除できないから手でファイルを直接いじったよ
8 : solrって最小のvpsで動かなかった tritonnとhyperestraierでうまくいった
9 : マシンスペックが必要ってこと? javaだっけ
10 : ラッパーモードのmyisamでdrop indexしたらエラーになる? innodbならOKだった 色々検索したらmyisamはあんまり推奨じゃない感じかな そもそもmyisamとの相性が悪いからgroonga開発したらしいし
11 : まだこれつかうには危険な感じが... ソーラーはmysqlで追加できないと思った
12 : ストレージモードでグルーンガファイルをバックアップ→いったん削除→リストア ってやったらmysqlへのアクセスではエラーになった groongaのdbをmysqlのテーブル定義に後から紐づけるのはどうしたらいいんだろ
13 : >>11 たしかに若干バギーな感じはある でもトリトンももうmysqlのバージョンが古いしなぁ
14 : ログファイル置き場を指定できるようにして欲しい /var/log/mysql/にまとめたいだろJK
15 : まだ実用になるレベルではないな とりあえずtritonnを置き換えられるようになってほしい
16 : とりあえず使えはするんだよね 運用の際のメンテとかまで考え出すと まだ煮詰まってないなーって思う
17 : >>14 お、書き込み時間が2ならび
18 : php、perlはNAMAZUを使って。 レコメンドはvogooでも使えよ。 javaはLucenceでレコメンドはmahountでよくない?
19 : SQL_CALC_FOUND_ROWSとlimitとorder byを同時に使うと limitで制限した行数が全行数になるね order byがないと全行数が正確に取れる。 groongaだけなのか、デフォルトの全文検索もそうなのかは検証してないけど とりあえず普通のmyisamは、order byがあっても全行数が変わることはなかった
20 : 268 名前:nobodyさん[sage] 投稿日:2011/06/01(水) 17:59:58.68 ID:??? limit a,b 指定で b の抽出件数指定は効くんだけど、a がゼロから効かない。 100,10 や 1000, 10 と指定しても、0, 10 と同じ結果。 フルテキストインデックス再構築したけど同じ。 インストした頃はちゃんと表示されたはずなんだが…。 sennaスレのこれと同じ現象かな?
21 : 2ind機能はやくサポートしてほしい
22 : ここにいる人たちは、全文検索を利用している人たちだと思うので質問させてください (別スレにて誘導されました) 皆さんは日本語の全文検索をどのようにされていますでしょうか? Tritonnをみると、MySQLのバージョンが結構古いみたいなのでどうなのかなと思うのですが、 どのように対策をされていますでしょうか? >>15 のように、まだ実用的ではないという事は、Tritonnの方がいいのでしょうか? また、中には自分でN-gramによって対策をしている人などもいるようですが、日本語の全文検索に対する対策は、N-gramとかで自分で実装する、Tritonnなどを入れる以外にはないのでしょうか?
23 : だからSolr使えって。
24 : groongaとトリトンのベンチマークはかった人いる? なんとなく、体感だけどgroongaが遅い感じがする 0.5秒くらいかかってる もう一度検索したら、0.000数秒でめっちゃ速い それはキャッシュが効いているのか、 一回目の検索でインデックス的なものが整理されたのか分からないけど。
25 : >>22 唯一の答えはないと思いますよ 俺はトリトンからgroongaへの移行を進めていますが 今のところ、どっちかの方があきらかにいい、と言える状況ではないと思います
26 : もしかして日本語の全文検索に関してはpostgresqlのほうがいい?
27 : groongaを語る夕べ #2 November 29, 2011 12:18 PM http://www.ustream.tv/recorded/18817014 めも
28 : バージョンアップしてたから mysql動かしたままupdateしたら groongaがストレージから消えた updateする時はサービス止めてからやらないといけないのかって当たり前か
29 : gronnga 1.2.9 has been released.
30 : >gronnga 1.2.9 has been released. >>19 の件は直ったのかな?
31 : >>30 mroonga 1.10で修正済み。 http://mroonga.github.com/ja/docs/news.html#release-1-10 > FOUND_ROWS()とSQL_CALC_FOUND_ROWSに対応。 ちなみにmroongaは現在1.11が最新。
32 : そろそろTritonnから乗り換えられそうかな。
33 : 更新はえーッス
34 : Fedora15サポート削除早いよって思ったけどソースからビルドしてるので 試したらFedora15でもgroonga 1.2.9動いた
35 : groonga-1.2.9 を -d --protocol http でサーバにして動かしていますが、 検索にヒットした文書から、類似した文書を検索することは可能でしょうか? ttp://groonga.org/ja/docs/expr.html によると > 類似文書検索や近傍検索のような高度な検索もすべてgrn_exprによって記述できます。 と書いてありますので select の --scorer に何らかの grn_expr を記述すればできそうにも思うのですが、 文書に含まれる語彙同士の類似度計算をどのように記述すれば良いのでしょうか…orz
36 : 2文書間での、類似度の計算法としてはこんなのがあるけど ttp://www.gifu-nct.ac.jp/elec/deguchi/sotsuron/hayashi/node20.html これをじゃぁどうやって grn_exprで書くんだろうねぇ grn_expr のもうちょっと詳細な書き方はこんな文書があるけど ttp://groonga.org/docs/contribution/development/query.html#id4 後の方に載っている「クエリの実例」ってのは多分これC APIとしての書き方じゃないか 類似文書を検索するには、2文書について処理をしなければならないわけだけど、 「ある文書」にアクセスするためには、その文書のカラム名を記載すればいいけど、 「他の文書」にアクセスする方法が分からないから記載できないな
37 : >>36 ありがとうございます。重要度を要素に持つベクトルのなす角(cosθ)ですか。 そのページわかりやすいですね。 C API 形式の grn_expr は ECMA Script 形式でも使えるんでしょうかね… いま一つこのあたりのドキュメントがわかりにくくて困っています。 でドキュメントのあちこちに出てくる「(ぐるんしき)」にいちいちイラッとしてみたりw 1. 文書から単語リストを抽出する関数 2. 全文書から指定された単語の重要度を求める関数 3. 2つの配列の積集合を求める関数 4. ベクトルの長さと内積を求める関数 を何とかして書けばできそうですね。 3, 4, はECMA Scriptで書ける(どこで書けばいいのかはわかってませんが)としても 1. 2. って、やっぱり C で書かなあかんのですかね…(´・ω・`)
38 : >>37 1. は、全文検索用語彙表に対して、類似している文書を検索したい文書のIDで検索することで求められるかな、と思ったけど よく分からない。 2 の重要度だけど、これは ttp://groonga.org/ja/docs/tutorial/lexicon.html に書いてあるように、語彙表に格納しておくことができそうだけど、事前に計算して入れておかなきゃダメだな。groongaがやってくれるわけじゃないみたい。 だから、grn_exprを生成するRubyとかPerlとかPHPとかCとかのプログラム・スクリプトで一部処理を行うことで実現できそうだけど、 「クエリ『ほげほげ』にヒットする文書に類似する文書」っていうgrn_exprは難しいんじゃないかな。できるのかもしれないけど
39 : 29日だがリリースはなしか・・・ 流石に日曜日だとお休みかな
40 : groonga 1.3.0 and mroonga 1.20 has been released.
41 : バージョンアップきた いまだにテーブル構造変わることがあるのかょ
42 : バージョンアップする→古いテーブル残ってる→削除もできない orz
43 : なにそれ怖い
44 : 泣きながら古いバージョン入れ直したお
45 : mysqld停止した状態で、MySQLデータフォルダ内の、 「データベース名.mrn」で始まる名前のファイルをすべて削除、 そしてデータベース名のフォルダの中の、「groongaエンジンのテーブル名.frm」というファイルをすべて削除、 という操作をすることで消せる ただし誤って変なファイルを消すととんでもないことになるので削除ではなく別のフォルダに移動しておくというのが 望ましい
46 : 場所移さずに、 元のファイル名.mouiranaikamo とかにリネームじゃ駄目?
47 : え? 毛利蘭かも?
48 : なんかあと数回テーブル構造変わるみたい ttp://twitter.com/ktou/status/172078385764372481
49 : 終わったら呼んでくれ
50 : groonga 2.0.0 and mroonga 2.00 has been released. mroongaはまた互換性が無いので注意。
51 : 更新はえーな いいことだけど
52 : メジャーバージョンアップにすぐ手を出して大丈夫だろうか? 様子みた方がいいかな
53 : groonga -d でデーモンにしてる方におたずねしたいのですが、 停止するときってどうしてますか? データが壊れやすいと聞いたので kill するのに抵抗があります。 参考: ttp://dupont-kedama.blogspot.com/2011/12/groonga2.html > Q.インデックスやストレージのデータの壊れやすさや壊れるタイミングは? > A.カーネルごと落ちると壊れやすい > プロセルが落ちても壊れるかも > 運が悪いとロックが残る …で今のところこんな感じで書いてるんですが、 (gqtpの場合) # echo 'shutdown' | groonga -c (httpの場合) # wget http://localhost:10041/d/shutdown -o /dev/null -O /dev/null
54 : (途中で送信してしまいました) …なんだか自分でもバカっぽい気がします…orz
55 : utf8mb4に対応しないのかなぁ… http://groonga.org/ja/docs/executables/groonga.html#cmdoption-e # 指定できるエンコーディング: none, euc, utf8, sjis, latin, koi8r
56 : あれ、PostgreSQLだとUTF-8で4バイト対応してるから使えるのかな?
57 : rroongaまだー\(^o^)/
58 : Rubyはオワコン。
59 : centos6用って標準インストールのmysql5.1用にビルドされてるんだね centos5用はmysql5.5との同時提供だから、groonga使うならcentos5の方がいい?
60 : groonga 2.0.1 and mroonga 2.01 has been released. メジャーバージョンアップが公開されてすぐアップするのは危険かなと思ってmroonga 2.00へはアップするのはやめといたが そろそろうpしてもいいだろうか・・・ 2.00より前からのアップグレードはDB作り直し必須だけど
61 : groonga 2.0.2 and mroonga 2.02 has been released.
62 : mysql5.5が含まれてないから5.5.23-1.el6.remi入れたら mysql> INSTALL PLUGIN mroonga SONAME 'ha_mroonga.so'; ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/ha_mroonga.so' (errno: 2 /usr/lib64/mysql/plugin/ha_mroonga.so: undefined symbol: 以下略 ってなってはいらない・・・
63 : バグでデバック用関数が5.5に無いけど、defineが有効にしてるらしい 対処法は・・・ググれw あと、メモリ解放のなんたらの引数が減ってるので削ると mroongaのソースを調整して再コンパイルすれば動く可能性高い
64 : バグあるのかよ しかもかなり根本的な部分で バージョンップアが早いのはいいけどバグあったら即修正版アップしてくれよ
65 : groongaに期待するな。 所詮、ユーザー数が少なくて開発者も少ない、 いつ終わってもおかしくないプロジェクトだ
66 : あ、すまん、63だけど バグがあるのはmysql5.5のincludeファイルだよ groongaのバグの有無は使ってないから知らんw 良い感じに煮込まれてきたら使おうかとスレを見てるだけなので。はい。
67 : ソースから入れればいいだけだろ
68 : ソースっねw
69 : mroongaストレージモードで使用した際 DISTINCTとLIMIT併用したときLIMITで指定した分とってから重複カットしてるから 返ってくるレコード数がLIMITと一致しない バグだよね?
70 : LIMITに関するバグは以前あったような 最新Verでも同様ならバグですね
71 : 色々やってみてサーバかデーモンで使うのが一番楽だと気づいた
72 : >>55 亀レスだけどgroongaのほうは4バイト文字列対応してるぞ MySQLが微妙
73 : MySQL5.5以上で対応してるだけの話。
74 : >>72-73 対応してるんだ。ありがと。
75 : queryのエスケープ処理のカオスっぷりハンパねーな
76 : mroongaテーブルで全文検索はうまくいくんだけど、 プライマリキーでの検索がちゃんとヒットしない バージョンは1.3.0 俺だけ? こんな単純なところで引っかかるとは・・
77 : プライマリキーも全文検索の対象にしてるの? プライマリキーでの全文検索ってのはできるのかな・・・ オートインクリメントのカラムを別途用意してそっちをプライマリキーにしたほうが安全だと思うが・・・
78 : プライマリキーは全文検索の対象にしてないよ varchar型の数文字の文字列 where id='hoge' みたいにやっても何故かヒットしない。 最近バージョンにしようと思ったけど、何回やっても Can't open shared library 'ha_mroonga.so' (errno: 0 API version for STORAGE ENGINE plugin is too different) って言われる インストールされてるパッケージは groonga-tokenizer-mecab-2.0.3-0 groonga-release-1.1.0-0 groonga-plugin-suggest-2.0.3-0 groonga-2.0.3-0 groonga-libs-2.0.3-0 mysql-mroonga-2.03-0 MySQL-client-5.5.23-1.rhel5 MySQL-server-5.5.23-1.rhel5 いやこれ全部最新版だよね もう疲れたよパトラッシュ
79 : groongaのバージョン戻して、 プライマリキーを削除したら検索可能になった それで普通のINDEXなら張り直しても問題ない 原理は不明だけど
80 : 昔はVARCHAR型プライマリキーの扱いに問題があったけど 最新バージョンでは大丈夫になってるはずだけどなぁ
81 : 最新バージョンはうまく入らなかったから戻したんだよ
82 : >>78 yumで入れた場合MySQLとmroongaのバージョン気をつけないとそんなことになった気がする mroongaソースから入れたらいいよ
83 : MySQL-server のversion が 5.5.25-1.rhel5 にup されたね おかげで、yum でmysql-mroonga が入るようになった
84 : 知っている方が居たら教えて頂きたいんですけど、 今、likeで部分一致を使って検索しているシステムを 全文検索に置き換えたいと思ってます そこでmroongaを試して居たのですが… 「駅」とかで検索した時に、TokenBigram(デフォルト)だと引っかからず 対策としてTokenUnigramにしました TokenUnigramにする事で、「駅」は解決したのですが、 今度は「BOX」がどうにもならず… データにINBOXとかがあり、これが引っかからない… mroongaで「駅」と「BOX」を両立させるうまい手は無いでしょうか 今の環境は、CentOS 6.2でmysqlは5.1.61, mroongaは2.0.3です 全部yumで入れました
85 : ngramのがはやそげ
86 : 結局、 TokenBigramSplitSymbolAlphaDigitで ?mroonga_match_escalation_thresholdを1にして 検索かけたら上手く行った
87 : WindowsServerでTritonn使ってます。 システムの移行を考えてて、groonga試したいんだけど、 MySQLのプラグインとしてgroongaを使うのはWindowsでは できませんか? 導入手順ご存知の方がいらっしゃったら教えてください
88 : ここ見たのか知らないけど、今ここでWindowsでも使えるように頑張ってるみたい 10月の後半ぐらいには使えるようになるんじゃね? http://redmine.groonga.org/issues/1496
89 : >>88 現在開発中なんですね。 気長に待ちます。
90 : debパッケージからgroonga-server groonga-server-commonがなくなっているような…
91 : groonga-server-gqtpに名前が変わったのか
92 : groonga-httpdに curl http://localhost:10041/d/status とかすると405 not allowedになるんだけどどうすりゃいいの nginx関連で405で調べるとpostした時のことばかりだし groonga内包のhttpの方は、shutdownで帰ってこない gqtpの方は問題ないんだが… 疲れた
93 : groongaをhttpで起動し、 http://localhsot にブラウザでアクセスしたら、 groongaのCPU使用率が100%になって、 応答なし状態になるんだけど、 何が悪いんでしょうか。 以下のコマンドを順番に実行しただけです。 ttp://groonga.org/ja/docs/tutorial/network.html#hypertext-transfer-protocol-http ttp://perl-users.jp/articles/advent-calendar/2011/casual/4 Windows8と2008ServerR2の 両方で再現... 素直にLinux使うべき?
94 : mroonga2.04->3.01に変えたら Insert時にgroonga.logに invalid utf8 string(2) on grn_str_charlen_utf8 が出るようになった・・・ 文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも 全部utf8_general_ciにしてる 全文検索の結果も同じ単語で今まで引っかかってたものが 半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
95 : mroonga2.04->3.01に変えたら Insert時にgroonga.logに invalid utf8 string(2) on grn_str_charlen_utf8 が出るようになった・・・ 文字コード照合順序はDBも、テーブルも、全文検索用インデックス設定してるカラムも 全部utf8_general_ciにしてる 全文検索の結果も同じ単語で今まで引っかかってたものが 半分くらいしか引っかからなくなってたり、、インデックスが壊れてる?
96 : なんか、grn::dat::Trie::open failedって出るようになってしまってgroongaエンジン系全滅なんだけど。 どうやって復帰すりゃええんですかいの?
97 : あ、mysql上なのでmroonga使ってますた 。 結局データの復帰はならず、一時ファイル的なものなので全抹消とあいなりました。 試したこと一覧 ・UNINSTALL PLUGIN、INSTALL PLUGINを実行 → 変化なし ・clearlockを実行(データファーいるの場所がわからず全体に対してclearlock) → 変化なし ・drop table → エラーで動かず ・UNINSTALL PLUGINを実行してからdrop table → テーブル自体は削除OK ・同じDB上でもっかいmroongaエンジンのテーブル作成 → 同様のエラーで作成できず ・DBを変更してmroongaエンジンのテーブル作成 → OK ・現行バックアップできるテーブル(非mroongaエンジン)を退避して、drop database → OK ・DBごと再作成 → OK もうちょっとスマートな解消方法あったんですかね? スレチだったらごめんなさい。
98 : oh... IDが変わってるけど>>96 です。 ちなみに途中でgroonga及びmroongaは1.0.xから3.03にアップデートしますた。
99 : 続報 同名DBを作成しなおして同名テーブルを生成し直すとエラー 当然っちゃ当然ですね。 というわけで、DBをもう一回削除しなおした後、mysqlのdataディレクトリ中のmrnファイルをごっそり削除したところエラーは回避。 なんとも不安定な仕組みなもんだね。mroongaは
100read 1read 1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
結局フリーで一番多機能な掲示板って何よ? (187)
Perlで電気ストーブを作る方法 (165)
【 スクリプト改造依頼スレ 】(丸投げ) part8 (162)
フリーメールの判別方法 (125)
何も分からん俺がPHPでWEBサイトを作るスレ (142)
外部2ちゃんねるread.cgi (189)
--log9.info------------------
EQが面白すぎる件について (262)
【FEZ】ファンタジーアースゼロ ニコ生スレ998(ん゙w (147)
The Tower of AION シャドウスレ Part39 (106)
【FEZ】ファンタジーアースゼロぉぅまsスレ1043Hi! (203)
ストラガーデンNEO Part145 (883)
聖剣ONLINE Part6 (100)
●mabinogi -マビノギ- 森鯖スレ 女神が2人● (205)
The Tower of AION チャントスレ Part30 (130)
真・女神転生IMAGINEサマナー専用 (646)
● mabinogi -マビノギ- 本スレ案内所8th ● (755)
大航海時代Online 戦闘系スレ 92海里 (184)
リネージュ普及活動 (560)
【賭博】PerfectWorld-完美世界-カイジAA【完美】 (228)
ファンタジーアース A鯖ホルデインスレ75 (923)
サービス終了したネトゲを書いていくスレ Part2 (226)
【新・天上碑】落ち目上等PART3【天下夢双】 (109)
--log55.com------------------
TRPGの電子化に拍車 Amazonが日本の出版業界を襲撃2
【第二式】異能使い 其之八【妖異大戦】
アイディアの出し方について
【放課後】卓上ゲームが登場する作品4【霧生さん】
【ロードス/クリスタニア】ソードワールドRPG268有
プレイング技術交換スレ 統合の33
1人用・1人プレイ可能ボードゲーム Part3
ままごとゲーム如きで偉そうにする馬鹿